我知道ON DUPLICATE USE KEY
条款。但我不能使用它,因为我想在非唯一列上update
和insert
。
我有table1
和table2
。我想在table1
上创建一个触发器。
伪代码:
IF id_code for corresponding id_name from table1 is present in table2
then update record in table 2
else record in table2.
对于Ex。
table1 has column1 id_code, column2 id_name
table2 has column1 id_code, column2 status
IF id_code for corresponding id_name from table1 is present in table2
UPDATE status column in table2.
ELSE insert id-code in table2
答案 0 :(得分:0)
最好的方法可能是使用条件语句,因为正如您所说的那样,您正在检查非唯一值,因此无法使用ON DUPLICATE KEY:
IF EXISTS (SELECT id_code FROM table2 WHERE id_code = 'code from table1') THEN
UPDATE table2 SET status = 'new status' WHERE id_code = 'code from table1';
ELSE
INSERT INTO table2 (id_code, status) VALUES ('code from table1', 'new status');
END IF;
这里唯一需要注意的是控制结构仅在存储过程中有效,因此您需要将其放在存储过程或触发器中。