如何使用 PostgreSQL 在 DBeaver 上创建自动递增/SERIAL id 列?

jww*_*wnz 12 postgresql dbeaver

我是 PostgreSQL 和 DBeaver(社区版 5.1.6 版)的新用户,并且正在寻找一种通过 DBeaver GUI在表中创建自动递增 ID 列的方法

从我的研究中我可以看出:

  1. 您可以使用 SQL 轻松设置它,例如。ID 序列号 NOT_NULL

  2. 潜在的问题是没有“串行数据类型”这样的东西,SERIAL 等同于 nextval('table_name_id_seq')。

  3. 当我在 SQL 中使用 SERIAL 命令创建表时,生成的 id 列在“默认”属性中具有 nextval('exampletable_id_seq'::regclass') 值。

例如,我尝试在新表中 DBeaver 列的“默认”属性中手动输入 nextval() 命令。nextval('mytable_id_seq') 带和不带 '::regclass;。然而,这是行不通的。

我很欣赏在 SQL 中执行此操作会更容易,并且之前有一个问题:DBeaver & PostgreSQL 中的串行数据类型问题

但是,我找不到令人满意的答案,并且能够通过 GUI 执行此操作的选项很有用,尤其是在通过 DBeaver GUI 完成其他设置的情况下。

具体来说,我的问题是:

  1. DBeaver 是否有通过 GUI 添加自动递增 ID 的功能?

  2. 如果是这样,执行此操作的步骤是什么。

非常感谢大家!

jww*_*wnz 23

在查看了上面对我的问题非常有帮助的评论后,我意识到这个问题是由于我缺乏 DBeaver 的经验而提出的。

为了完整起见,我在下面列出了我的问题的答案:

  1. 是的,有一种方法可以直接通过 DBeaver GUI 自动递增。

  2. 这可以通过在创建表时设置一个 id 变量来完成,方法是设置一个类型为序列的列并勾选“非空”,然后通过约束将 id 设置为主键。

下面附上截图:

在此处输入图片说明

由于 PostgreSQL 的工作方式,“Serial”类型是一种伪类型,它允许使用一系列数字(http://www.postgresqltutorial.com/postgresql-serial/)。

因此,在 DBeaver 中,一旦您设置了表,这将显示如下而不是“串行”类型:

在此处输入图片说明

我很欣赏这对熟悉 PostgreSQL 和/DBeaver 的人来说是一个非常明显的答案,感谢您的理解:)

  • 是否可以通过编辑来执行此操作,而不是在创建表时? (8认同)