oracle 02000,java – SQL错误:ORA-02000:在创建基于标识列的表时缺少ALWAYS关键字

我尝试在表上创建一个自动递增的列,正如我在

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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值