Oracle
 sql >> Base de données >  >> RDS >> Oracle

Déclencheurs :comment initialiser la valeur d'une table avec une valeur d'une autre ?

Parce que ce n'est pas ainsi que vous modifiez une valeur dans la ligne en cours d'insertion - vous devez la modifier en utilisant le :NEW syntaxe (documentation ); et vous n'avez pas montré comment récupérer une valeur pertinente du MODELO tableau.

Vous devez faire quelque chose comme :

CREATE OR REPLACE TRIGGER inicializar_plazas_disponibles
BEFORE INSERT OR UPDATE ON vuelo
FOR EACH ROW
BEGIN
    SELECT capacidad
    INTO :NEW.plazas_disponibles
    FROM modelo
    WHERE ... some condition, presumably another :NEW column ...
END;

(Bien que je ne sois pas tout à fait sûr que vous puissiez sélectionner directement dans un :NEW valeur - essayez cela, mais si ce n'est pas le cas, vous devrez déclarer une variable du même type, sélectionnez-la à la place, puis affectez-la au :NEW ).