我有两张桌子user
& user_tmp
仅将主键设为id
。这两个表的字段可能是:
`id` PRIMARY AUTO_INCREMENT INT,
`Name` VARCHAR(80),
`Contact No` VARCHAR(10),
`Status` INT
我需要一个基于IF EXISTS ON user_tmp
表的简单查询,然后user
user
ELSE插入id
表中的更新值。
我试过REPLACE&在DUPLICATE KEY上,但它不起作用,因为CREATE TRIGGER MyTrigger AFTER INSERT ON table
FOR EACH ROW
BEGIN
UPDATE table SET a=?,b=?,...
END;
是PRIMARY KEY,并且两个表中的值都不同。
问候。
答案 0 :(得分:0)
你需要做两个查询。一个查询来更新匹配的记录:
INSERT INTO user (Name, Contact_No, Status)
SELECT t.Name, t.Contact_No, t.Status
FROM user_tmp AS t
LEFT JOIN user AS u ON u.Contact_No = t.Contact_no
WHERE t.id IS NULL
和第二个插入尚不存在的那些:
SELECT
有关INSERT
中addItem()
查询如何查找不匹配的行的说明,请参阅Return row only if value doesn't exist。