Auto-Increment
Ansi SQL:自動編號的列
是否有自動編號列的ANSI標準。
目前,我們可以選擇
SERIAL
,AUTOINCREMENT
,AUTO_INCREMENT
和IDENTITY()
good oldNEXTVAL()
等。我在某處讀到有一個新標準
IDENTITY
,我知道 Oracle 最近已經實施了該標準。我知道甲骨文並不是標準的硬道理。如果有一個標準,那麼它是一個很長的時間來。
是的,它絕對不是“新標準”。自 SQL:2003 以來,它一直在 SQL 標準中
定義是:
<identity column specification> ::= GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ <left paren> <common sequence generator options> <right paren> ]
帶有序列生成器選項的可選部分允許您定義基礎序列(=生成器)的特徵,您可以執行以下操作:
id integer GENERATED ALWAYS AS IDENTITY (start with 42 increment by 10 cycle)
PostgreSQL 10、Oracle 12.1、DB2、Apache Derby、HSQLDB、Firebird 和 NuoDB (至少)支持這種語法。