如何编写MySQL查询来查找外键实体存在?

时间:2014-07-22 06:45:10

标签: mysql sql liquibase

我需要更新表格中的客户详情

如果client_id存在于客户端表中且client_id存在于customer表中,我将更新(如果不是insert),使用以下查询

INSERT INTO `customer` (`username`, `password`, `client_id`) 
VALUES ('username', 'password', 1) 
ON DUPLICATE KEY UPDATE `password` = 'user-password';

当client_id为空(客户端表中不存在id)时,我需要跳过update并插入。

如何编写MySQL查询以跳过这个?

1 个答案:

答案 0 :(得分:1)

尝试使用 REPLACE 代替 INSERT 。如果存在PRIMARY KEY,它将替换该行,但如果不存在,那么它将像往常一样进行插入。

REPLACE INTO `customer` (`username`, `password`, `client_id`) 
VALUES ('username', 'password', 1);