私はすべてのデータ更新を記録するトリガーを書き込みましたが、previous_value, new_value, field_name
以上のログを記録します。しかし、問題は私が77フィールド私のテーブルにあります。それで、各フィールドにIF ENDIF
を書くのは難しいので、私はループを使って書くことが可能であることを知りたいですか?助けてください、私がこれまで試してみました::更新後にトリガーを書きたい
BEGIN
IF(OLD.company_name != NEW.company_name) THEN
INSERT INTO elm_activity_log (user_id, action_on, action, action_col, action_old_value, action_new_value, action_at, action_on_id) VALUES (NEW.updated_by, "company", "update", "company_name", OLD.company_name, NEW.company_name, CURRENT_TIMESTAMP(), NEW.company_id);
END IF;
IF(OLD.company_first_name != NEW.company_first_name) THEN
INSERT INTO elm_activity_log (user_id, action_on, action, action_col, action_old_value, action_new_value, action_at, action_on_id) VALUES (NEW.updated_by, "company", "update", "company_first_name", OLD.company_first_name, NEW.company_first_name, CURRENT_TIMESTAMP(), NEW.company_id);
END IF;
END
をすでにdba.stackexchange.comに尋ねたが、まだfruitfull答えが得られませんでした、リンクの下::
、または任意の提案は非常に役に立つでしょう。
ありがとうございます。
ないでキャリッジリターンで終わる必要がありますいくつかの
は/n
を追加したことを注意。私はinformation_schema.columnsの内容をExcelにダンプし、そこでコードを構築します。 –