我试着在表上创建一个自动递增列,因为我在这个post看到有2种方式,第二种实现与标识列关键字一个更优雅的解决方案,但是当我试图实现它,我得到以下错误:SQL错误:ORA-02000:始终缺少在创建标识列基于表
Error at Command Line : 3 Column : 31
Error report -
SQL Error: ORA-02000: missing ALWAYS keyword
02000. 00000 - "missing %s keyword"
实际的表脚本执行:
CREATE TABLE "PLATFORM"."AUTH_PERMISSION"
(
ID NUMBER(19,0) GENERATED BY DEFAULT ON NULL AS IDENTITY,
-- ID NUMBER(19,0) PRIMARY KEY NOT NULL,
NAME VARCHAR2(50) UNIQUE NOT NULL,
ACTION_ID NUMBER(19,0) NOT NULL,
RESOURCE_ID NUMBER(19,0) NOT NULL,
ENVIRONMENT_ID NUMBER(19,0) NOT NULL,
CONSTRAINT "ACTION_ID" FOREIGN KEY ("ACTION_ID")
REFERENCES "AUTH_ACTION" ("ID") ENABLE,
CONSTRAINT "ENVIRONMENT_ID" FOREIGN KEY ("ENVIRONMENT_ID")
REFERENCES "AUTH_ENVIRONMENT" ("ID") ENABLE,
CONSTRAINT "RESOURCE_ID" FOREIGN KEY ("RESOURCE_ID")
REFERENCES "AUTH_RESOURCE" ("ID") ENABLE,
UNIQUE (ACTION_ID, ENVIRONMENT_ID, RESOURCE_ID)
);
可以蜜蜂看出,我尝试列自动 - 增量是表格的主键。
This是我从哪里得到解决方案的参考。
问题是我使用的是旧版本的Oracle 11g。
'GENERATED BY DEFAULT'陈述是无效的。在这里查看更多信息http://oracle-base.com/articles/11g/virtual-columns-11gr1.php。它存在于oracle 12c中,指定你的数据库版本?你的oracle版本为 – Exhausted 2015-03-02 09:38:00
? – Prashant 2015-03-02 09:43:06
oracle版本是12c – aurelius 2015-03-02 09:44:55