使用命令创建sql表

时间:2014-05-03 09:07:54

标签: sql oracle constraints

create table participants (
partid number(19) not null primary key auto_increment,
partmn varchar(20) null,
partln varchar(20) null
)

当我在Oracle中运行此代码时,它给ORA-00907:删除右括号后删除auto_increment它正在运行

1 个答案:

答案 0 :(得分:0)

没有" auto_increment"的概念。或"身份" Oracle中的列。但是,您可以使用序列轻松实现它。

在oracle 12之后,支持身份但不支持自动增量。

使用以下行

ALTER TABLE participants ADD (
  CONSTRAINT partid_pk PRIMARY KEY (partid));

CREATE SEQUENCE party_seq;

Trigger definition:

CREATE OR REPLACE TRIGGER party 
BEFORE INSERT ON participants
FOR EACH ROW

BEGIN
  SELECT party_seq.NEXTVAL
  INTO   :new.partid
  FROM   dual;
END;

对于oracle 12及以上版本,您可以使用不带下面的触发器

CREATE SEQUENCE participants_seq;
CREATE TABLE participants (
  partyId          NUMBER DEFAULT participants _seq.NEXTVAL,
  other column definitions
);