【发布时间】:2019-02-16 07:41:51
【问题描述】:
我有 oracle 11g 数据库。 所以,过去我对表用户的姓名和姓氏有 uniq-constraint,所以 我的桌子是
id name surname age position
和约束:
alter table User add constraint UK8ut91db3xdtls2x61e63iwym4 unique (name, surname);
但是现在,我需要移除这个约束,所以 name 和 surname 不能是唯一的。 我通过脚本从 base 中删除了这个约束:
alter table ORGANIZATION.USER drop constraint UK8UT91DB3XDTLS2X61E63IWYM4
并且这个约束被取消了:
SELECT * FROM all_constraints WHERE CONSTRAINT_NAME='UK8UT91DB3XDTLS2X61E63IWYM4'
最后一个脚本什么也不返回。
但是,如果我尝试插入具有相同姓名和姓氏但 ID 不同的几行 - 就会出现错误
INSERT INTO ORGANIZATION.USER(id, name, surname, age, position) VALUES (111-222, 'Natalia', 'Solzhenizina', 22, 'consultant')
Error report -
ORA-00001: нарушено ограничение уникальности (constraint violetion on unique) (SBDATASVCS.UK8UT91DB3XDTLS2X61E63IWYM4)
【问题讨论】:
-
你的表名不一致。您确定要从同一个表中添加和 droppng 约束吗?您要向其中插入数据的表上是否有任何触发器?
-
能否添加查询的输出 SELECT * FROM all_constraints WHERE table_name = 'USER';