异常内容
ERROR 1062 (23000): Duplicate entry 'xxx-xxx-xxx' for key 'key_name_xxx'
报错原因
如果报错内容如上所示,那么是因为联合主键约束导致的,因为xxx-xxx-xxx
内容为3个字段的拼接起来的值,请检查一下表的约束;
解决办法
-- 示例SQL
-- 查看表的所有约束
SHOW KEYS FROM folder;
-- 查看约束名为name_unique的主键
SHOW KEYS FROM folder WHERE KEY_NAME = 'name_unique';
-- 删除name_unique的约束
ALTER TABLE folder DROP INDEX name_unique;
-- 创建名为name_unique的联合唯一约束(4个字段联合唯一)
ALTER TABLE folder ADD UNIQUE KEY name_unique ( name, org_id, parent_id, rel_type );