Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zmień wstawioną wartość za pomocą wyzwalacza

W składni wyzwalacza Oracle nowo wstawiony rekord jest określany przez :new , a nie new (zwróć uwagę na dwukropek). Dodatkowo SET jest częścią instrukcji aktualizacji, a nie sposobem na ustawienie wartości pól — robi się to za pomocą prostych przypisań, ale pamiętaj, że robi się to za pomocą := zamiast = .
Więc Twój wyzwalacz powinien brzmieć:

CREATE OR REPLACE TRIGGER NumberOfBooks
    BEFORE INSERT
    ON book
    FOR EACH ROW
BEGIN
    IF :new.nobook < 10
    THEN
        :new.nobook := 10;
    END IF;
END;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zestaw znaków Oracle JDBC i limit 4000 znaków

  2. PreparedStatement ma wartość null w klauzuli Where bez warunkowych warunkowych (zapytanie dynamiczne) lub bezużytecznych wartości

  3. Dlaczego nazwy tabel/kolumn/indeksów Oracle są ograniczone do 30 znaków?

  4. Jak znaleźć informacje o typach danych w schemacie Oracle?

  5. Jak wybrać konkretny element z tablicy JSON w Oracle typu JSON CLOB