方法一:postgreSQL通过将字段类型设置为serial来将表设计为自增表
CREATE TABLE t_achievement_directory (
id serial8 PRIMARY KEY,
directory_name varchar(255) COLLATE "pg_catalog"."default",
pid int8,
modify_time timestamp(6)
)
;
方法二:GENERATED BY ALWAYS AS IDENTITY 或 GENERATED BY DEFAULT AS IDENTITY
id int8 NOT NULL GENERATED BY DEFAULT AS IDENTITY
或
id int8 NOT NULL GENERATED ALWAYS AS IDENTITY
这两种方式的区别在于:
generated always as identity 总是按照(START WITH 1 INCREMENT BY 1)的方式插入数据,并维护索引。即不允许用户向id列指定数据插入。
但是 generated by default as identity 则是在用户不指定id列值的情况下按照(START WITH 10 INCREMENT BY 10)方式插入数据,如果用户指定,则依然按照指定的值插入。