ich diese Tabellen bekam (Oracle):Schreiben Auslöser einer Tabelle automatisch eine andere Tabelle zu aktualisieren
Doctors (Doctor_ID (PK),
Doctor_Name,
DoB,
Specialization)
Doctors_At_Work (Doctor_ID (PK),
The_Date (PK),
Hour_Start (PK),
Hour_Stop,
Room)
Consultations_Intervals (Doctor_ID (PK),
The_Date (PK),
Start_Hour_Consult (PK),
Stop_Hour_Consut,
Room)
OBS: A consultation last for only 30 minutes.
Meine Aufgabe ist es, die notwendigen Trigger erstellen (insert/update/delete) von Doctors_At_Work
, um automatisch zu aktualisieren die Consultations_Intervals
Tabelle.
Was ich bisher tat:
Create sequence seq_id_doctor START with 1 INCREMENT BY 1 ORDER NOCACHE;
CREATE OR REPLACE trigger t_1
BEFORE INSERT ON Doctors_At_Work FOR EACH ROW
BEGIN
:NEW.Doctor_ID:=seq_id_doctor.NextValue;
:NEW.The_Date:=CURRENT_TIMESTAMP;
:NEW.Hour_Start:=Select Extract (Hour from CURRENT_TIMESTAMP);
END;
/
CREATE OR REPLACE trigger t_2
AFTER INSERT OR UPDATE ON Consultations_Intervals FOR EACH ROW
BEGIN
INSERT INTO Consultations_Intervals VALUES
(:NEW.Doctor_ID, :NEW.The_Date, :NEW.Hour_Start, :NEW.Hour_Start +
interval '30' minute, :NEW.Room);
END;
/
was falsch ist? Wie soll ich diese Aufgabe lösen? (wenn es andere Ideen gibt)
Was ist das Problem? Haben Sie einen Fehler (was?) Oder ein unerwartetes Verhalten? – Aleksej
Bitte geben Sie auch die Struktur der Tabellen an; Zum Beispiel, Hour_Start ist ein Datum, varchar, Nummer ?, ... – Aleksej