0

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

我有这个更新查询:

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

4

1 回答 1

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 ;

你可以这样做

于 2012-12-30T14:50:55.943 回答