Oracle SQL自动生成的标识主键
我正在使用Oracle的SQLDeveloper并尝试创建一些表。 我的目标是创建一个简单的表,例如,带有自动生成的id和描述Oracle SQL自动生成的标识主键,sql,oracle,Sql,Oracle,我正在使用Oracle的SQLDeveloper并尝试创建一些表。 我的目标是创建一个简单的表,例如,带有自动生成的id和描述 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 -
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 Server的版本编辑:11.2.0.1.0感谢您的澄清