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

时间:2018-09-05 05:24:21

标签: postgresql dbeaver

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

从我的研究中,我可以看到:

  1. 您可以使用SQL轻松地进行设置,例如。 id SERIAL NOT_NULL

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

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

例如,我尝试在新表的DBeaver中的列的“默认”属性内手动输入nextval()命令。带有和不带有':: regclass;的nextval('mytable_id_seq')。但是,这不起作用。

我很高兴在SQL中执行此操作会更容易,并且在Problems de Serial data type in DBeaver & PostgreSQL中有一个先前提出的问题。

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

具体来说,我的问题是:

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

  2. 如果是这样,将采取什么步骤。

非常感谢大家!

1 个答案:

答案 0 :(得分:1)

在回顾了我对上述问题的非常有帮助的评论之后,我意识到由于我缺乏DBeaver的经验而提出了该问题。

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

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

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

下面附有屏幕截图:

enter image description here

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

因此,在DBeaver中,一旦设置了表,它将显示为以下内容,而不是'serial'类型:

enter image description here

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