MySQL-操作外键报错

  1. 添加外键时,报错

    1
    1022-Can't write;duplicate key in table 'users'

    报错原因:外键名称重复,改为不同名字即可

  1. 删除有外键关联的数据或者表的时候,报错:

    1
    Cannot delete or update a parent row: a foreign key constraint fails

    解决办法:先关闭外键约束,执行删除操作,然后再开启外键约束

    1
    2
    3
    4
    5
    6
    # 先设置外键约束检查关闭
    SET foreign_key_checks = 0;
    # 删除数据,表或者视图
    drop table mytable;
    # 开启外键约束检查,以保持表结构完整性
    SET foreign_key_checks = 1;