Du hast da bestimmte Anforderungen, bestimmte Einstellungen auf Tabellenebene, die Unsereins grösstenteils in der Datenzugriffsschicht bearbeiten würde, also mithilfe der Prozeduren.
ID number(10,0)
Wert varchar2(100)
Datum date (oder timestamp)Sobald jemand einen Wert in dieser Tabelle (nennen wir sie einmal TEST) verändert oder inserted, soll das Datum-Feld auf (SELECT SYSTIMESTAMP FROM DUAL) gesetzt werden.
Exakt hier, Du schreibst eine UPDATE-Prozedur und stellst sicher ("Rechtesystem!), dass Applikationen nicht an der SP vorbei ein UPDATE absetzen können.
(Trigger sind etwas schwierige DB-Objekte, Wir würden auf sie bestmöglich verzichten.)
Stell doch mal einen Verweis auf den "Triggerteil" der Oracle-Doku hier ein, dann könnten wir mal schauen (wenns denn sein muss).
Zweite Frage ist, wie kann ich ein Constraint so erstellen, dass Daten in dieser Tabelle:
id number (PK)
x number
y number
zoom number
text varchar2nur gültig sind, wenn X UND Y UND ZOOM alle einen Inhalt haben , oder alle keinen Inhalt haben.
Auch etwas für die Datenzugriffschicht, DB-seitig ist das nicht einzustellen.
Sobald eines von denen ein Inhalt hat und mindestens einer von den anderen kein Inhalt hat, soll es einen Fehler geben.
;)