Ich habe ein Problem mit meinem Auslöser (ich bin neu mit Oracle) Mit diesem Auslöser möchte ich, wenn ein neuer Vertrag einfügen und diese Verträge haben ein start_date, das vor diesem end_date des anderen Vertrags dieses Benutzers ist , der Trigger muss das alte end_date in das start_date des neuen Vertrags ändern.Lösung dieses einfachen Auslösers
Hier ist mein Code:
CREATE OR REPLACE TRIGGER Date_contracts
BEFORE INSERT OR UPDATE OF START_DATE ON CONTRACTS
FOR EACH ROW
BEGIN
IF :NEW.START_DATE < (SELECT DISTINCT END_DATE FROM CONTRACTS WHERE SSN = NEW.SSN)
THEN OLD.END_DATE := NEW.START_DATE;
END IF;
END;
/
und SQL developres sagt, dass Unterabfrage in diesem Zusammenhang nicht erlaubt. Ich bin sicher, dass das zu reparieren ist, aber ich kann es nicht lösen, weil mein Niveau so niedrig ist. Ich hoffe, dass Sie mir helfen :) Danke
Es ist eine Warnung, dass ** Es zeigt möglicherweise mehr als 1 Datensatz zurückgeben * * –
Sie haben ein grundlegendes Missverständnis der Auslöser, wenn Sie denken, dass Sie das alte Anfangsdatum ändern können. –