私は、トリガーを操作するために何か別のシナリオを持っています。更新トリガーを実行した後、前のレコードを取得する方法は?
メインテーブルで実際に更新する前にログテーブルにレコードを挿入します。しかし、私はそれを違ってやりたい。
本当にメインテーブルで更新が発生したときにログテーブルにレコードを追加するだけで、MySQL Triggerを使用してそれを実行したいのです。
ここでスクリーンショットを添付しています。
I名前= ABCDのID = 1を更新する場合、それは最初のテーブルを記録するためにそれを追加し、列の前の状態を読み出します。
私が確認したいことはそれだけで、実際の更新がmain_tableてしまったときに、テーブルをmain_table_logするために追加することにMySQLのトリガを使用しています。 main_tableに更新がない場合、main_table_logテーブルにレコードを追加すべきではありません。
誰でも助けてもらえますか?私はそれはできるとは思いますが、それをやる方法がないと思いますか?
もちろん、私はPHPを前面に使用しています。
すばやくご回答いただきありがとうございます。代わりに、OLDレコードが実際に更新されているかどうか、各フィールドをチェックすることができますか?私は各テーブルに約10-15のフィールドを持っているからです。 – NullPointer
タイムスタンプの列に 'ON UPDATE CURRENT_TIMESTAMP'がありますか?次に、他の列が更新されていなければ更新されないので、その列をチェックするだけです。 http://stackoverflow.com/questions/6296313/mysql-trigger-after-update-only-if-row-has-changed – Barmar
私があなたが提供したリンクを見ています。最初に関連する質問を見つけようとしましたが、見つかりませんでした。 – NullPointer