【发布时间】:2017-12-11 12:16:10
【问题描述】:
我是Dbeaver(社区版)和PostgreSQL的新用户(菜鸟),在任何表中定义自动递增主键时遇到了很大的麻烦,所以我想知道如何能够使用 DBeaver 定义自动递增的主键,答案不得包括这些试验:
- 将主键定义为串行(DBeaver 会自动将其更改为 int2-4-8,即使将 主键 定义为非空)。
- 在 DBeaver 中定义新序列(定义新序列的最佳方法是抛出 pgAdmin4,您可能无法将其分配给如果您像我一样在 DBeaver 或 pgAdmin4 中是菜鸟,则表的 主键)。
【问题讨论】:
-
序列号是 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