0

影響を受ける行が 0 より大きい場合にのみアクティブになる更新用の sql トリガーを作成することになっていました。以下の挿入クエリを実行する前に、影響を受ける行の数を確認したいと思います。前もって感謝します!私の文法でごめんなさい!

DELIMITER $$

DROP TRIGGER /*!50032 IF EXISTS */ `dbase`.`table_update_trigger`$$

CREATE
    /*!50017 DEFINER = 'root'@'localhost' */
    TRIGGER `table_update_trigger` AFTER UPDATE ON `table` 
    FOR EACH ROW BEGIN

IF (@@ROWCOUNT > 0) THEN
INSERT INTO 
    table_audit_trail
    (column1,
    column2,
    column3,
    column4,
    column5,
    column100) 
VALUES
    (old.column1,
    old.column2,
    old.column3,
    old.column4,
    old.column5,
    old.column100);
END IF;
END;
4

1 に答える 1

0

@@ROWCOUNTMySQLにはありません。この投稿を読んで、それを置き換える方法を見つけることができます。

しかし、あなたはそれを必要としません。トリガーはfor each row、更新されたすべての行に対して起動するようにするためのものです。(しかし、それはあなたの行が変更されたことを意味するのではありません。ただそれらが何らかのステートメントによって更新されたということです。)

于 2012-05-30T07:53:44.787 に答える