如何在Oracle上用AUTO_INCREMENT创建ID?
在Oracle中似乎没有AUTO_INCREMENT的概念,直到包括11g版本。
我怎样才能在Oracle 11g中创建一个行为类似于自动增量的列?
387
3
在Oracle中似乎没有AUTO_INCREMENT的概念,直到包括11g版本。
我怎样才能在Oracle 11g中创建一个行为类似于自动增量的列?
在Oracle中没有"自动递增"或"身份"列这样的东西,到Oracle 11g为止。然而,你可以用一个序列和一个触发器轻松地建立模型。
表的定义。
触发器定义。
UPDATE:
IDENTITY
列现在可以在Oracle 12c上使用。或指定起始值和递增值,同时防止任何插入身份列的行为(`GENERATED ALWAYS')(同样,仅适用于Oracle 12c+)。
另外,Oracle 12也允许使用一个序列作为默认值。
这里有三种味道。
x
是身份列。 在每个例子中用你的表名代替FOO
。更新。
Oracle 12c引入了这两个不依赖触发器的变体。
第一种是以传统方式使用序列;第二种是内部管理值。
假设你指的是像SQL Server身份栏那样的列?
在Oracle中,你用一个SEQUENCE来实现同样的功能。 我看看能不能找到一个好的链接并把它贴在这里。
更新:看起来你自己找到了。 下面是链接。 http://www.techonthenet.com/oracle/sequences.php