嘿我正在尝试更新表并创建一个插入另一个表的行。
我有这个更新查询:
UPDATE logs_month SET status ='1'
WHERE DATE_FORMAT(month,"%m/%y") = '11/12'
我希望它是这样的:
UPDATE logs_month SET status ='1',
(INSERT INTO some_table (columns) values (values from the updated row))
WHERE DATE_FORMAT(month,"%m/%y") = '11/12'
如何做到这一点?
我不想使用2个查询,因为此更新每月可以多次使用,我想只插入当前更新的行以防止重复,而不使用唯一索引。
答案 0 :(得分:3)
UPDATE logs_month SET status ='1'
WHERE DATE_FORMAT(month,"%m/%y") = '11/12';
COMMIT;
INSERT INTO some_table (columns) values (select columns
from logs_month where DATE_FORMAT(month,"%m/%y") = '11/12';
您也可以使用 TRIGGER ,
DELIMITER $$
CREATE TRIGGER `logs_m`
AFTER UPDATE ON `logs_month`
FOR EACH ROW
BEGIN
IF NEW.status=1 THEN
INSERT INTO some_table (field) values (NEW.field);
END IF;
END$$
DELIMITER ;
你可以这样做