我有一个表员工,我想添加一个约束,这使我能够 ONLY 一个id_manager null 的员工。 我的代码中有一个示例,但我认为这是错误的。
ALTER TABLE employees ADD CONSTRAINT u_t UNIQUE (id_manager);
这就是我得到的错误。
SQL Error: ORA-02299: (OPREAC_IDD.U_T)
02299. 00000 - "cannot validate (%s.%s) - duplicate keys found"
*Cause: an alter table validating constraint failed because the table has
duplicate key values.
答案 0 :(得分:4)
你说:
我想添加一个约束,这使我能够仅一名
id_manager
null 的员工。
因此,如果我理解正确,您可以在id_manager
列中找到重复项。您尝试限制的唯一事项是确保只有一行可以null
作为id_manager
的值。
如果是这种情况,您将需要使用表达式创建唯一索引,以便仅考虑和验证空值:
create unique index emp_idx
on employees (case when id_manager is null then 1 end)