如何在更新的行上查询插入?

时间:2012-12-30 14:47:02

标签: mysql sql sql-update

嘿我正在尝试更新表并创建一个插入另一个表的行。

我有这个更新查询:

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个查询,因为此更新每月可以多次使用,我想只插入当前更新的行以防止重复,而不使用唯一索引。

1 个答案:

答案 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 ;

你可以这样做