一、今天做项目由于客户一个奇葩的需求,所以遇到一个比较奇怪的问题,就是在mysql 数据库中,正在使用两个表,A表其中的一列是B表的外键,现在需要修改A表和B表的列,直接修改就报错误,如下:
数据库处理这种东西时,不允许进行修改,因为这个操作违反了外键约束,破坏了数据库完整性。
mysql提供了一个方法,临时关闭外键约束,当修改完成之后再将外键约束加回来。
需要的操作放在两个语句之间:
SET FOREIGN_KEY_CHECKS = 0;
/* DO WHAT YOU NEED HERE */
UPDATE personal SET sfzid = '12345678' WHERE sfzid = '6FEF14DA';
UPDATE card SET sfzid = '12345678' WHERE sfzid='6FEF14DA';
SET FOREIGN_KEY_CHECKS = 1;