sql >> Database >  >> RDS >> Oracle

Ingevoegde waarde wijzigen met trigger

In de triggersyntaxis van Oracle wordt naar het nieuw ingevoegde record verwezen met :new , niet new (let op de dubbele punt). Bovendien, SET is een onderdeel van een update-instructie, niet een manier om veldwaarden in te stellen - die worden gedaan door eenvoudige toewijzingen, maar merk op dat deze worden gedaan met := in plaats van = .
Dus je trigger zou moeten luiden:

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. Upgrade van SQL Server-gegevensplatform in 2015

  2. Vind max en tweede max salaris voor een werknemerstabel MySQL

  3. Hoe kan ik een aangrenzende rij in sql selecteren wanneer ik door een ander veld bestel?

  4. Django Foreign key in een ander schema