【发布时间】:2011-11-04 20:44:42
【问题描述】:
我使用下面的脚本在oracle中创建了一个表
CREATE TABLE STAFF_LVL
(
STAFF_LEVEL NUMBER(1,0),
MANAGER VARCHAR2(10),
OPERATOR VARCHAR2(10),
ENGINEER VARCHAR2(10),
PRIMARY KEY (STAFF_LEVEL) ENABLE
);
但是,当我插入以下 dat 时,它不起作用,因为其中 2 行是相同的
BEGIN
insert into staff_lvl values (1,'N','N','Y');
insert into staff_lvl values (3,'N','Y','Y');
insert into staff_lvl values (7,'Y','Y','Y');
insert into staff_lvl values (3,'N','Y','Y');
END;
有人知道怎么解决吗?
【问题讨论】:
-
是的,不要插入重复项。你想要什么?
-
这是一个 uni 项目,这是我必须插入的数据,但staff_level 是主键,谢谢罗斯
-
如果是主键,则不能有重复项。
-
主键可以有重复值,甚至可以是空值。在插入数据、使用 NOVALIDATE 并使用非唯一索引后,您必须创建或启用约束。但在 99.9% 的情况下,这样做可能是个坏主意。另见:stackoverflow.com/questions/7981221/… 和 stackoverflow.com/questions/7993585/…(最近这个问题不断出现是巧合,还是你们都在同一个班?)