SQL错误:ORA-02000:创建基于身份列的表时缺少ALWAYS关键字

我尝试在表上创建一个自动递增的列,正如我在这篇文章中看到的,有两种方法,使用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)

);

可以看出,我尝试自动递增的列是表的主键。

这是我获得解决方案的参考。

问题是我使用了旧版本的Oracle 11g。

回答:

您尝试连接的Oracle数据库 也许是 ,但是您正在使用的客户端 不支持该功能。请检查您的

,该 可能不支持 。您需要下载更高版本的客户端。

在 版本上 完美 。

SQL> select banner from v$version where rownum = 1;

BANNER

--------------------------------------------------------------------------------

Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production

SQL> CREATE TABLE AUTH_PERMISSION

2 (

3 ID NUMBER(19,0) GENERATED BY DEFAULT ON NULL AS IDENTITY,

4 -- ID NUMBER(19,0) PRIMARY KEY NOT NULL,

5 NAME VARCHAR2(50) UNIQUE NOT NULL,

6 ACTION_ID NUMBER(19,0) NOT NULL,

7 RESOURCE_ID NUMBER(19,0) NOT NULL,

8 ENVIRONMENT_ID NUMBER(19,0) NOT NULL

9 );

Table created.

以上是 SQL错误:ORA-02000:创建基于身份列的表时缺少ALWAYS关键字 的全部内容, 来源链接: utcz.com/qa/436026.html

回到顶部