更新後のMySqlトリガーは、すべてが正しい場合でも更新されません

ノーマン

Tab_1

"id"    "name"      "addr"  "country"   "status"
"1"     "norman"    "1st"   "US"        "2"
"2"     "kirk"      "2nd"   "US"        "2"

Tab_2

"id"    "name"      "addr"  "country"   "pos"   "total"
"1"     "norman"    "1st"   "US"        "0"     "0"
"2"     "kirk"      "2nd"   "US"        "0"     "0"

私は後に、トリガーの下に使用しているupdateTab_1update Tab_2でステータスがときTab_1に設定されています0問題は、それが正しい場合でも何もしないということです。これを正しく設定するにはどうすればよいですか?

CREATE DEFINER=`root`@`localhost` TRIGGER `tab_2_upd` AFTER UPDATE ON `tab_1` 
FOR EACH ROW BEGIN
if new.status = '0' then
update tab_2 set pos = pos+1, total = total+1 where id = new.id;
//Should it be new.id or old.id? I tried both but still no luck.
end if;
END
Zagor23

これは、区切り文字を変更していないために複数のステートメントが壊れているもう1つのケースです。これはかなり一般的なエラーです。

これを試して:

DELIMITER $$

DROP TRIGGER IF EXISTS  `tab_2_upd`$$

CREATE DEFINER=`root`@`localhost` TRIGGER `tab_2_upd` AFTER UPDATE ON `tab_1` 
FOR EACH ROW BEGIN
    if new.status = '0' then
        update tab_2 set pos = pos+1, total = total+1 where id = new.id;
    end if;
END$$

DELIMITER ;

ON UPDATEトリガーにはOLDとNEWの両方の値があり、の値がid変更されることはないと思うので(変更すべきではない)、任意の値(OLDまたはNEW)を使用しても安全です。

ここに区切り文字に関する良い答えがあります

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

MySQLトリガーは、個別のwhere句が指定されている場合でもすべての行を更新します

分類Dev

すべての値が同じテーブルに存在しない場合はmysqlが更新され、それ以外の場合は何もありません

分類Dev

ObservableObjectがSwiftUIに継承されている場合、ビューの更新はトリガーされません

分類Dev

ObservableObjectがSwiftUIに継承されている場合、ビューの更新はトリガーされません

分類Dev

更新された列の値が「APPROVED」に等しい場合、更新トリガー後に起動します

分類Dev

別のトリガー内で列が変更された場合、ORACLEの「更新前」トリガーは起動しません

分類Dev

bootstrap-multiselectを使用していて、「すべて選択」が選択されている場合、AJAX呼び出しはトリガーされません。

分類Dev

MySQLは、列名がwhere句でのみ指定されている場合、すべての行を更新します

分類Dev

変更日が指定されていない場合にのみ、変更日トリガーを更新します。

分類Dev

アイテムが更新された場合、セットのマップはトリガーされません

分類Dev

MYSQLは、手動で挿入された値がない場合にのみトリガーを起動します-機能しません

分類Dev

すでに宣言されているC#ASP更新パネルでもIDが見つかりません[トリガー]をクリックします

分類Dev

そのトーストがすでに表示されている場合、トーストの場所は更新されません

分類Dev

NTPは正しく同期されていますが、それでも時刻が更新されませんか?

分類Dev

URIは同じままですが、画像データが変更されている場合、WindowsPhoneアプリの画像は更新されません

分類Dev

multiがtrueに設定されていても、MongoDBがすべてのレコードを更新しているわけではありません

分類Dev

配列が空の場合でも、最初にレンダリングしたときは正しいデータがレンダリングされますが、更新後は空になります

分類Dev

SQL更新トリガーが実行されていません

分類Dev

SwiftUI FetchRequestを変更しても、ビューの更新がトリガーされませんか?

分類Dev

SwiftUI FetchRequestを変更しても、ビューの更新がトリガーされませんか?

分類Dev

GWT:1つの子のサイズ変更をトリガーするにはどうすればよいですか?別の子が更新された場合、コンテナーは変更されませんか?

分類Dev

OpenGLが有効になっている場合にのみ、ペンが更新されてもPyQt5Chartシリーズは再描画されません

分類Dev

エラーが存在する場合、PHP +でフォームを検証しても更新されません

分類Dev

更新するものがない場合でも、Makeは常にターゲット「all」に対して実行されます

分類Dev

isVisibleがtrueに設定されている場合、リストビューは更新されません

分類Dev

React Native-Reduxの状態は更新されていますが、コンポーネントビューが正しく更新されていません

分類Dev

すべての権限がチェックされていない場合、データベースは更新されません

分類Dev

jQueryイベントは、コードで記述されている場合はトリガーされませんが、コンソールで記述されている場合はトリガーされます

分類Dev

Pythonでリストが更新されても、Forループは範囲を更新しません

Related 関連記事

  1. 1

    MySQLトリガーは、個別のwhere句が指定されている場合でもすべての行を更新します

  2. 2

    すべての値が同じテーブルに存在しない場合はmysqlが更新され、それ以外の場合は何もありません

  3. 3

    ObservableObjectがSwiftUIに継承されている場合、ビューの更新はトリガーされません

  4. 4

    ObservableObjectがSwiftUIに継承されている場合、ビューの更新はトリガーされません

  5. 5

    更新された列の値が「APPROVED」に等しい場合、更新トリガー後に起動します

  6. 6

    別のトリガー内で列が変更された場合、ORACLEの「更新前」トリガーは起動しません

  7. 7

    bootstrap-multiselectを使用していて、「すべて選択」が選択されている場合、AJAX呼び出しはトリガーされません。

  8. 8

    MySQLは、列名がwhere句でのみ指定されている場合、すべての行を更新します

  9. 9

    変更日が指定されていない場合にのみ、変更日トリガーを更新します。

  10. 10

    アイテムが更新された場合、セットのマップはトリガーされません

  11. 11

    MYSQLは、手動で挿入された値がない場合にのみトリガーを起動します-機能しません

  12. 12

    すでに宣言されているC#ASP更新パネルでもIDが見つかりません[トリガー]をクリックします

  13. 13

    そのトーストがすでに表示されている場合、トーストの場所は更新されません

  14. 14

    NTPは正しく同期されていますが、それでも時刻が更新されませんか?

  15. 15

    URIは同じままですが、画像データが変更されている場合、WindowsPhoneアプリの画像は更新されません

  16. 16

    multiがtrueに設定されていても、MongoDBがすべてのレコードを更新しているわけではありません

  17. 17

    配列が空の場合でも、最初にレンダリングしたときは正しいデータがレンダリングされますが、更新後は空になります

  18. 18

    SQL更新トリガーが実行されていません

  19. 19

    SwiftUI FetchRequestを変更しても、ビューの更新がトリガーされませんか?

  20. 20

    SwiftUI FetchRequestを変更しても、ビューの更新がトリガーされませんか?

  21. 21

    GWT:1つの子のサイズ変更をトリガーするにはどうすればよいですか?別の子が更新された場合、コンテナーは変更されませんか?

  22. 22

    OpenGLが有効になっている場合にのみ、ペンが更新されてもPyQt5Chartシリーズは再描画されません

  23. 23

    エラーが存在する場合、PHP +でフォームを検証しても更新されません

  24. 24

    更新するものがない場合でも、Makeは常にターゲット「all」に対して実行されます

  25. 25

    isVisibleがtrueに設定されている場合、リストビューは更新されません

  26. 26

    React Native-Reduxの状態は更新されていますが、コンポーネントビューが正しく更新されていません

  27. 27

    すべての権限がチェックされていない場合、データベースは更新されません

  28. 28

    jQueryイベントは、コードで記述されている場合はトリガーされませんが、コンソールで記述されている場合はトリガーされます

  29. 29

    Pythonでリストが更新されても、Forループは範囲を更新しません

ホットタグ

アーカイブ