具有唯一索引和主键的列给出唯一约束冲突
Column with Unique Index and Primary Key gives Unique Constraint Violation
我刚刚在 PL/SQL Devloper 上创建了一个 Table。我创建的 Table 有一个 ID 列。对于本专栏,我设置了一个主键 (PK_ID)。该列还有一个名为 PK_ID.
的唯一索引
我试图通过这样写插入到这个 table 中:
INSERT INTO ADMIN.MESSAGE_LIST (TEXT, TEXTER, ID)
VALUES ('This is a Test','Tim', 1);
我收到错误 "ORA-00001: unique constraint (ADMIN.PK_ID) violated"
我在 table 中没有其他插入(它目前是空的),我认为插入 1 是因为 ID 是唯一的。
我也没有设置序列和触发器来自动增加 ID 列,因为老实说我不知道如何编辑 table 来做到这一点(这就是为什么我刚刚插入ID为1作为测试)。
如果 table 为空,为什么我不能使用 ID 1 插入?在那种情况下它不会仍然是唯一的吗?
(注意:运行 不包含 ID 和值 1 的命令给我一个错误,说我无法将 "NULL" 插入 ID 列)
请执行一个简单的语句:
select * from admin.message_list where id = 1;
如果它不会 return 行,您应该检查约束 PK_ID 是否引用了 ID 列,如果是,请要求 Oracle 支持修复错误。
我刚刚在 PL/SQL Devloper 上创建了一个 Table。我创建的 Table 有一个 ID 列。对于本专栏,我设置了一个主键 (PK_ID)。该列还有一个名为 PK_ID.
的唯一索引我试图通过这样写插入到这个 table 中:
INSERT INTO ADMIN.MESSAGE_LIST (TEXT, TEXTER, ID)
VALUES ('This is a Test','Tim', 1);
我收到错误 "ORA-00001: unique constraint (ADMIN.PK_ID) violated"
我在 table 中没有其他插入(它目前是空的),我认为插入 1 是因为 ID 是唯一的。
我也没有设置序列和触发器来自动增加 ID 列,因为老实说我不知道如何编辑 table 来做到这一点(这就是为什么我刚刚插入ID为1作为测试)。
如果 table 为空,为什么我不能使用 ID 1 插入?在那种情况下它不会仍然是唯一的吗?
(注意:运行 不包含 ID 和值 1 的命令给我一个错误,说我无法将 "NULL" 插入 ID 列)
请执行一个简单的语句:
select * from admin.message_list where id = 1;
如果它不会 return 行,您应该检查约束 PK_ID 是否引用了 ID 列,如果是,请要求 Oracle 支持修复错误。