Oracle SQL自动生成的标识主键
问题描述:
我正在使用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"
任何想法,我可能是做错了? 在此先感谢!
答
标识列是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;
/
您需要的Oracle 12.1为。你使用的是哪个Oracle版本? –
Oracle IDE 4.1.5.21.78 –
这是您的SQL客户端的版本,**不是**您的Oracle **服务器的版本** –