我尝试在表上创建一个自动递增的列,正如我在
post中看到的那样有两种方法,第二种使用Identity列的实现是一种更优雅的解决方案,但是当我尝试实现它时,我收到以下错误:
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.