2009-05-09 22 views
1

私は2つのテーブルt1とt2を持っています。私はt1の上に挿入した後にtr1を2回作成し、t2の更新後にtr2を作成しました。両方のテーブルにおいて、テーブルt2を更新する。そのため、t2テーブルがすでに別のトリガで更新されているため、再度更新できないというエラーが発生しています。挿入後と更新後のトリガー

誰かがこの種の問題に直面して解決した場合は教えてください。

ありがとうございます! MySQL DBA。

答えて

-6

私はこの問題を修正しました.2つのトリガから同じテーブルtb1に更新して挿入しようとしていましたが、Mysqlでは同じテーブルを変更することはできません。

ありがとうございました

22

が更新されているか、またはに挿入されている場合は、BEFORE UPDATEおよび/またはBEFORE INSERTトリガーを使用し、NEWエイリアスを使用する必要があります更新が適用された後に見える行) - 挿入されているフィールドを実際に変更することができます。 OLD別名は、更新が適用される前の行または削除される前の行(削除時に起動するトリガー内)を参照します。

だから、おそらく、トリガTR2のためにあなたの線に沿って何かする必要があります:

DELIMITER $$ 
    CREATE TRIGGER tr2 BEFORE UPDATE ON t2 
    FOR EACH ROW BEGIN 
     SET NEW.field1 = some_value_you_want_to_set_it_to; 
    END; 
$$ 
DELIMITER ; 

トリガーにあなたが実際にテーブルを更新することはできませんので

、それはすでに更新されている、右のthats。

関連する問題