sql >> Databasteknik >  >> RDS >> Oracle

Ändra insatt värde med trigger

I Oracles triggersyntax hänvisas till den nyligen infogade posten med :new , inte new (lägg märke till kolon). Dessutom SET är en del av en uppdateringssats, inte ett sätt att ställa in fältvärden - de görs genom enkla tilldelningar, men observera att dessa görs med := istället för = .
Så din utlösare bör vara:

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. Dela en MYSQL-sträng från GROUP_CONCAT till en ( array, like, expression, list) som IN () kan förstå

  2. Hämta bild från databasen i asp.net

  3. Varför fungerar min Postgres-databas ett tag och kan sedan inte starta servern när den har startat om?

  4. Hur man bifogar en SQL Server-databas från kommandoraden