如何使用带有 PostgreSQL 的 DBeaver 创建自动递增/SERIAL id 列?

How to create auto incrementing / SERIAL id columns using DBeaver with PostgreSQL?

我是 PostgreSQL 和 DBeaver(社区版 5.1.6 版)的新用户,正在寻找一种在 table 通过 DBeaver GUI

根据我的研究,我可以看到:

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

  2. 潜在的问题是没有 'Serial data type' 这样的东西,SERIAL 等同于 nextval('table_name_id_seq').

  3. 当我在 SQL 中使用 SERIAL 命令创建 table 时,生成的 id 列在'Default' 属性。

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

我很高兴在 SQL 中执行此操作会更容易,并且之前在以下位置提出了一个问题:Problems de Serial data type in DBeaver & PostgreSQL

但是,我找不到满意的答案,能够通过 GUI 执行此操作的选项会很有用,特别是如果其他设置是通过 DBeaver GUI 完成的。

具体来说,我的问题是:

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

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

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

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

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

  2. 这可以通过在创建 table 时设置一个 id 变量来完成,方法是设置类型为 serial 和“ not null”勾选,然后通过约束将id设为主键。

截图如下:

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

因此,在 DBeaver 中,一旦您设置了 tables,它将显示如下,而不是 'serial' 类型:

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