sql >> Base de Datos >  >> RDS >> Oracle

Disparadores:¿cómo puedo inicializar el valor en una tabla con un valor en otra?

Debido a que no es así como cambia un valor en la fila que se está insertando, debe modificarlo usando :NEW sintaxis (documentación ); y no ha mostrado cómo recuperar un valor relevante del MODELO mesa.

Tienes que hacer 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;

(Aunque no estoy del todo seguro de si puede seleccionar directamente un :NEW valor:intente eso, pero si no, deberá declarar una variable del mismo tipo, seleccionarla en su lugar y luego asignarla a :NEW ).