匿名用户Postgresql 怎么设置主键id自增?
Postgresql 怎么设置主键id自增?
我来答
添加附件
收藏
复制链接
微信扫码分享
在小程序上查看
分享
添加附件
问题补充
2条回答
默认
最新
GENERATED ALWAYS AS ( generation_expr ) STORED
此子句将列创建为generated column。 列无法被写入,读取时将返回指定表达式的结果。
关键字STORED表示将在写入时计算列并将存储在磁盘上。
生成表达式可以引用表中的其他列,但不能引用其他生成的列。使用的任何函数和运算符都必须是不可改变的。不允许引用其他表。
GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( sequence_options ) ]
该子句将列创建为标识列。 它将拥有一个隐式序列附加到它,并且新行中的列将自动从分配给它的序列中获取值。
子句ALWAYS和BY DEFAULT确定如何在 INSERT和UPDATE命令中明确处理用户指定的值。
在INSERT命令中,如果选择了ALWAYS,则仅当 INSERT 语句指定OVERRIDING SYSTEM VALUE时 才接受用户指定的值。如果选择BY DEFAULT,则用户指定的值优先。 有关详细信息,请参阅INSERT。(在COPY命令中, 无论此设置如何,始终使用用户指定的值。)
在UPDATE命令中,如果选择了ALWAYS, 则将列更新为除DEFAULT之外的任何值都将被拒绝。 如果选择BY DEFAULT,则该列可以正常更新。 (UPDATE命令没有OVERRIDING子句。)
参考文档 http://postgres.cn/docs/13/sql-createtable.html
举例
CREATE TABLE tab
(id int generated always as identity);
CREATE TABLE tab
(id int generated by default as identity);
评论
有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏

