Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Trigger:Wie kann ich den Wert einer Tabelle mit einem Wert einer anderen initialisieren?

Da Sie auf diese Weise keinen Wert in der einzufügenden Zeile ändern, müssen Sie ihn mit :NEW ändern Syntax (Dokumentation ); und Sie haben nicht gezeigt, wie Sie einen relevanten Wert aus dem MODELO abrufen Tabelle.

Sie müssen etwas tun wie:

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;

(Obwohl ich nicht ganz sicher bin, ob Sie direkt in ein :NEW auswählen können value - versuchen Sie das, aber wenn nicht, müssen Sie eine Variable des gleichen Typs deklarieren, wählen Sie stattdessen diese aus und weisen Sie diese dann dem :NEW zu ).