【发布时间】:2015-02-03 16:51:47
【问题描述】:
我刚刚在 PL/SQL Devloper 上创建了一个表。我创建的表有一个 ID 列。对于本专栏,我设置了一个主键 (PK_ID)。该列还有一个名为 PK_ID 的唯一索引。
我试图通过这样写来插入到这个表中:
INSERT INTO ADMIN.MESSAGE_LIST (TEXT, TEXTER, ID)
VALUES ('This is a Test','Tim', 1);
我收到错误“ORA-00001:违反唯一约束 (ADMIN.PK_ID)”
我在表中没有其他插入(当前为空),我认为插入 1 因为 ID 是唯一的。
我也没有设置序列和触发器来自动增加 ID 列,因为老实说我不知道如何编辑表来做到这一点(这就是为什么我刚刚插入 ID 为 1 作为测试)。
如果表为空,为什么我不能插入 ID 为 1 的内容?在那种情况下,它不会仍然是独一无二的吗?
(注意:在不包含 ID 和值 1 的情况下运行命令会给我一个错误,提示我无法在 ID 列中插入“NULL”)
【问题讨论】:
-
该表似乎不太可能是空的。如果表中有另一行
ID为 1,您只会收到该错误。 -
下一行是否有分号和
/,导致语句被执行两次?然后,您会在错误消息之前看到“插入了 1 行”。 (或尝试插入 null 的两条错误消息)。
标签: oracle plsql plsqldeveloper