2017-04-10 48 views
0

我正在使用Oracle的SQLDeveloper并尝试创建一些表。 我的目标是创建一个简单的表格,例如,带有自动生成的ID和描述。Oracle SQL自动生成的标识主键

CREATE TABLE xpto (
id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, 
description VARCHAR2(200) NOT NULL 
); 

我越来越:

Error report - 
SQL Error: ORA-02000: missing (keyword 
02000. 00000 - "missing %s keyword" 

任何想法,我可能是做错了? 在此先感谢!

+2

您需要的Oracle 12.1为。你使用的是哪个Oracle版本? –

+0

Oracle IDE 4.1.5.21.78 –

+0

这是您的SQL客户端的版本,**不是**您的Oracle **服务器的版本** –

回答

1

标识列是Oracle从版本12c支持的功能。
在Oracle 11它不工作,你必须使用一个序列和触发器,以这样的方式

CREATE TABLE xpto (
id NUMBER PRIMARY KEY, 
description VARCHAR2(200) NOT NULL 
); 

CREATE SEQUENCE xpto_seq; 

set define off 
CREATE OR REPLACE TRIGGER xpto_id 
BEFORE INSERT ON xpto 
FOR EACH ROW 
WHEN (new.id IS NULL) 
BEGIN 
    :new.id := xpto_seq.nextval; 
END; 
/