【问题标题】:Problems de Serial data type in DBeaver & PostgreSQLDBeaver 和 PostgreSQL 中的串行数据类型问题
【发布时间】:2017-12-11 12:16:10
【问题描述】:

我是Dbeaver(社区版)和PostgreSQL的新用户(菜鸟),在任何表中定义自动递增主键时遇到了很大的麻烦,所以我想知道如何能够使用 DBeaver 定义自动递增的主键,答案不得包括这些试验:

  1. 将主键定义为串行(DBeaver 会自动将其更改为 int2-4-8,即使将 主键 定义为非空)。
  2. DBeaver 中定义新序列(定义新序列的最佳方法是抛出 pgAdmin4,您可能无法将其分配给如果您像我一样在 DBeaverpgAdmin4 中是菜鸟,则表的 主键)。

【问题讨论】:

  • 序列号是 int2-4-8,加上序列号。为什么不使用 SQL 语句?..
  • 没有真正的数据类型serial。这是以序列为默认值的整数列的简写。 postgresql.org/docs/current/static/… 所以创建一个串行数据类型的表最好的方法就是定义为串行。显然 DBeaver 以与psql 相同的方式显示表格:imgur.com/a/m8TI4
  • @VaoTsun, int2-4-8, 我的意思是 (int2 - int4 - int8),那个 SQL 语句应该是什么??
  • DBeaver 的问题是我无法在程序中生成序列,也无法像在 pgAdmin4 中那样定义序列类型b>,即使我设法绕过所有这些问题,当我尝试从 DBeaver 中添加新记录时,它不会生成自动主键编号,它会给我一个错误当主键被定义为 Not Null 时,主键具有空值的消息
  • 请使用现有表 DDL 更新您的帖子,并明确定义您尝试做什么以及什么不起作用

标签: postgresql dbeaver


【解决方案1】:

我在 DBeaver GUI 中也找不到这个。您可以针对您的表发出以下 sql 查询:

ALTER TABLE public."Customer"
    ALTER COLUMN customer_id ADD GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2014-03-25
    相关资源
    最近更新 更多