Oracle SQL自动生成的身份主键 [英] Oracle SQL Auto Generated Identity Primary Key
本文介绍了Oracle SQL自动生成的身份主键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Oracle的SQLDeveloper并尝试创建一些表. 我的目标是创建一个简单的表,例如,使用一个自动生成的ID以及说明.
I'm using Oracle's SQLDeveloper and trying to create some tables. My goal is to create a simple table, for example, with an auto-generated id together with a description.
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"
知道我可能做错了什么吗? 预先感谢!
Any idea what I might be doing wrong? Thanks in advance!
推荐答案
身份列是Oracle从版本12c开始支持的功能.
在Oracle 11中,它不起作用,您必须以这种方式使用序列和触发器:
Identity columns is a feature supported by Oracle from version 12c.
In Oracle 11 it does not work, you must use a sequence and a trigger, in this way:
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 SQL自动生成的身份主键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文