mysql更新具有外键检查的整个空列

时间:2016-01-22 22:58:10

标签: mysql command-line-interface

必须有一种方法可以将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。

1 个答案:

答案 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恰好是与此情况下所需的外键索引相对应的所需值。