sql >> データベース >  >> RDS >> Mysql

MySQLトリガーがテーブルを更新できません-エラー1442を取得します

    症状 つまり、UPDATEを実行しているということです。 (すべての行に対して)INSERT内 トリガー-両方ともテーブルを変更しますが、これは許可されていません。

    とはいえ、トリガーの意図が正しく推測された場合、すべてを更新する必要はありません。 行ですが、新しく挿入された行のみです。

    で簡単に達成できます
    CREATE TRIGGER sum
    BEFORE INSERT
    ON news
    FOR EACH ROW
    SET NEW.sum = (NEW.int_views + NEW.ext_views)/NEW.pageviews
    

    これはBEFORE INSERTであることに注意してください テーブルに書き込まれる前に行を変更したいので、トリガーします。



    1. MySQLにJSONデータを保存する方法

    2. PostgreSQLデータソースをWildFly9.0に追加するにはどうすればよいですか?

    3. SQLServerの行レベルのセキュリティの概要

    4. JavaScriptの日付オブジェクトの月のインデックスは0で始まります