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

挿入行の値を null に設定するトリガー

    まず最初に決めなければならないこと:

    • どちらか 望ましくない時間に挿入または更新が行われたときに失敗するようにしたい
    • または 挿入または更新を処理したいが、列を null に設定したい。

    両方を持つことはできません。

    列を NULL に設定する場合、これは BEFORE である必要があります INSERT/UPDATE トリガーなので、変更された列がテーブルに書き込まれます。 (AFTER INSERT/UPDATE トリガーでは、フィールドに何らかの値を設定しても、フィールドが書き込まれないため、何の効果もありません。)

    次に SET NEW.STAFFNO = NULL; は有効な PL/SQL ではありません。:NEW.STAFFNO := NULL; である必要があります。

    CREATE OR REPLACE TRIGGER hi
      BEFORE INSERT OR UPDATE OF class_time ON class
      FOR EACH ROW 
    WHEN (new.class_time NOT BETWEEN '09:00' AND '18:00')
    BEGIN 
      :new.staffno := null; 
      :new.class_day := null; 
      :new.class_type := null; 
      :new.roomnum := null;
    END; 
    



    1. PHPを使用してmysqlデータベースに.sqlファイルをインポートするにはどうすればよいですか?

    2. dplyr left_join by未満、より大きい条件

    3. ユーザーがフィールドを定義できる場合のスキーマ設計

    4. MySQLデータベースからfancyboxにajaxコンテンツを動的にロードする