Postgres Bigserial数据类型

时间:2017-04-28 21:38:22

标签: java postgresql bigint

我正在尝试使用Bigserial数据类型创建Postgres表作为主键。创建表格后,表格定义将更改为bigint NOT NULL DEFAULT nextval('transactions.transaction_id_seq'::regclass),。请让我知道为什么会这样?

先谢谢, 索姆纳特

1 个答案:

答案 0 :(得分:1)

the documentation所述,连续出版物不是“真正的”数据类型,而是便利包装。如果您创建了一个串行列,则会自动获取

  • 新序列('tablename_columnname_seq`)
  • 一个相应类型的整数列,它从序列中获取其默认值。
  • 列的设置以使用序列。

引用:

  

数据类型smallserial,serial和bigserial不是真正的类型,而只是创建唯一标识符列的符号方便(类似于其他一些数据库支持的AUTO_INCREMENT属性)。

CREATE TABLE table (BIGSERIAL id PRIMARY KEY);

相同
CREATE SEQUENCE table_id_seq;
CREATE TABLE table (
   id bigint NOT NULL DEFAULT nextval('table_id_seq')
);
ALTER SEQUENCE table_id_seq OWNED BY table.id;

哪个与你得到的相符。