尝试在Oracle 11g中自动增加

时间:2017-02-13 18:38:26

标签: oracle11g primary-key

我正在尝试为表创建一个自动递增的主键,但我没有运气。这是在Oracle 11g中,我严重缺少MySQL自动增量命令。 PrimkeyID是我尝试用作主键的列。这是一个多对多关系的交叉表。无论如何,错误表明我在主键括号的开头只丢失了一个关键字。此外,我没有执行触发器所需的权限级别,这对于在Oracle中递增非常重要。

create table SITE_JUNC
(
primkeyID number,
FKsuperpave varchar(30),
FKcont_mix varchar(30),
)
;
alter table site_junc 
add constraint primary key(create sequence primkeyID incement by 1),

add constraint FKsuperpave foreign key(mix_id_superpave)
references SMGR_CONT_MIX(ContMix),

add constraint FKcont_mix foreign key(mix_id_cont_mix)
references SUPERPAVE(SuperMix)

1 个答案:

答案 0 :(得分:1)

首先,序列是与表无关的对象。 你必须首先创建序列,然后创建表(不一定按顺序)。

Create sequence seq_table;

然后,在insert语句中,使用seq_table.nextval(或使用触发器)。 如果你不喜欢这个解决方案,你可以使用GUID(我个人不喜欢):

create table SITE_JUNC
(primkey number RAW(16) DEFAULT SYS_GUID() PRIMARY KEY,
....)

启动Oracle 12c,您有Identity列。