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 に答える