Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Gatilhos:como inicializar o valor em uma tabela com um valor em outra?


Porque não é assim que você altera um valor na linha que está sendo inserida - você precisa modificá-lo usando o :NEW sintaxe (documentação ); e você não mostrou como recuperar um valor relevante do MODELO tabela.

Você precisa fazer algo como:
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;

(Embora eu não tenha certeza se você pode selecionar diretamente em um :NEW value - tente isso, mas se não, você precisará declarar uma variável do mesmo tipo, selecione-a e atribua-a ao :NEW ).