sql >> Databáze >  >> RDS >> Oracle

Spustit nastavení hodnot vloženého řádku na hodnotu null

Nejprve se musíte rozhodnout:

  • buď chcete, aby se vložení nebo aktualizace nezdařily, když se provádí v nežádoucím čase
  • nebo chcete, aby byly vložení nebo aktualizace zpracovány, ale se sloupci nastavenými na hodnotu null.

Nemůžete mít obojí.

V případě, že chcete nastavit sloupce na NULL, mělo by to být BEFORE INSERT/UPDATE spoušť, takže změněné sloupce se zapíší do tabulky. (Ve spouštěči AFTER INSERT/UPDATE by nastavení polí na nějakou hodnotu nemělo žádný účinek, protože nejsou zapsána.)

Poté SET NEW.STAFFNO = NULL; není platný PL/SQL, to by muselo být :NEW.STAFFNO := NULL; místo toho.

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. jak získat uživatelský vstup z qdateEdit a vybrat jej z databáze v postgresu

  2. MySQL - načte hodnotu z jiné tabulky, pokud je sloupec null

  3. SQLite EXISTUJE

  4. MySQL LOAD DATA INFILE číslo řádku úložiště