1

これがこれまでの私のコードです

DELIMITER $$
    CREATE TRIGGER status AFTER UPDATE ON users
        FOR EACH ROW BEGIN
            IF NEW.status != OLD.status
            THEN INSERT INTO users (status_change_date)
            VALUES (NOW());
            ENDIF;
END$$

DELIMITER;

私たちがやろうとしているのは、指定されたフィールドが変更されたときに現在の日付でフィールドを更新し、その日付を同じテーブルのstatus_change_dateの下に保存することです。上記のコードはMySQLでエラーをスローします。同じテーブルを更新するために自分自身を呼び出すことはできないと私に叫びました。どんな助けでも大歓迎です。

4

1 に答える 1

1

同じテーブルを変更したいので、次のように、のBEFORE UPDATE代わりにトリガーを使用してみてください。AFTER UPDATE

DELIMITER $$
    CREATE TRIGGER status BEFORE UPDATE ON users
        FOR EACH ROW BEGIN
            IF NEW.status != OLD.status
            THEN INSERT INTO users (status_change_date)
            VALUES (NOW());
            ENDIF;
END$$

DELIMITER;
于 2012-09-28T21:10:42.897 に答える