我正在尝试使用Bigserial数据类型创建Postgres表作为主键。创建表格后,表格定义将更改为bigint NOT NULL DEFAULT nextval('transactions.transaction_id_seq'::regclass),
。请让我知道为什么会这样?
先谢谢, 索姆纳特
答案 0 :(得分:1)
如the documentation所述,连续出版物不是“真正的”数据类型,而是便利包装。如果您创建了一个串行列,则会自动获取
引用:
数据类型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;
哪个与你得到的相符。