Oracle SQL自动生成的身份主键 [英] Oracle SQL Auto Generated Identity Primary Key

查看:82
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆