6

UPDATEで行全体を監査テーブルにコピーするトリガーを作成しようとしています。

私は2つのテーブルを持っています

FrequenciesFrequencies_Audit

これが私のきっかけです。

create trigger auditlog 
before update on frequencies
for each row insert into
frequencies_audit select frequencies.*;

レコードを更新すると、 Unknown Table が表示されfrequenciesます。

データベースに常に列を追加しているため、可能であれば各フィールド名を個別に入力する必要はありません。

4

2 に答える 2

17

ではなくBEFORE UPDATE、次のようにトリガーを記述できAFTER UPDATEます::

DELIMITER //
CREATE TRIGGER auditlog AFTER UPDATE ON frequencies
FOR EACH ROW BEGIN  
    INSERT INTO frequencies_audit select * from frequencies where freqId = NEW.freqId;
END;//
DELIMITER ;

freqId は Id 列の名前です。度数表の Id 列の名前に置き換えます。

于 2012-07-25T05:51:12.260 に答える
0

あなたはこれを試すことができます

create trigger auditlog 
AFTER UPDATE on frequencies
for each row insert into
frequencies_audit select * from frequencies;

MYSQLでは、あなたが書いた場合select TableName.*、それは常にエラーを返すからUnknown table TableNameです。

それはあなたを助けるかもしれません。

于 2012-07-25T04:14:30.003 に答える