必须有一种方法可以将mysql字段从NULL值更新为另一个值,而不使用SET FOREIGN_KEY_CHECKS = 0,对吗?
我试过了:
update tablename set fieldname = "textstring" where fieldname is null;
并且只有当我查询该列的结果时才会改变列的值,而不是在我查询表中的整行时。如何添加满足引用表约束的另一个条件,以便更新字段?
这是基本结构:
{Database:businesses,{company:[id,name,address,phone],employee:[id,company(fk),role]}}
在employee表中,id和role字段已填充,但公司值均为NULL。我想用“somestring”替换此字段中的NULL。我在Linux Ubuntu发行版中使用mysql 5.5。
答案 0 :(得分:0)
我从来没有得到过这个问题的答案,所以我最终以老式的方式解决了问题。也许如果我分享它会对某人有益。注意,我无法绕过外键检查,因此对于如何在生产环境中最好地执行此建议仍然存在建议:
SET FOREIGN_KEY_CHECKS = 0; -- disable a foreign keys check
UPDATE employee SET company = IFNULL(company,1);
SET FOREIGN_KEY_CHECKS = 1;
将公司值设置为1恰好是与此情况下所需的外键索引相对应的所需值。