Man*_*ngo 4 auto-increment sql-standard
是否有自动编号列的ANSI标准。
目前,我们有一个选择SERIAL
,AUTOINCREMENT
,AUTO_INCREMENT
,IDENTITY()
和良好的老NEXTVAL()
等等。
我在某处读到有一个新标准IDENTITY
,我知道 Oracle 最近实施了该标准。我知道 Oracle 并不是标准的硬道理。
如果有一个标准,那么它是一个很长的时间来。
是的,它绝对不是“新标准”。自 SQL:2003 以来,它一直在 SQL 标准中
定义是:
<identity column specification> ::=
GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY
[ <left paren> <common sequence generator options> <right paren> ]
Run Code Online (Sandbox Code Playgroud)
带有序列生成器选项的可选部分允许您定义底层序列(=生成器)的特征,您可以执行以下操作:
id integer GENERATED ALWAYS AS IDENTITY (start with 42 increment by 10 cycle)
Run Code Online (Sandbox Code Playgroud)
PostgreSQL 10、Oracle 12.1、DB2、Apache Derby、HSQLDB、Firebird 和 NuoDB 支持(至少)这种语法。