Ich benutze Postgres. Sagen wir, ich werde folgende Trigger erstellen:Wie erhalten Sie den Primärschlüsselwert in der Triggerfunktion, wenn der Primärschlüsselspaltenname nicht bekannt ist?
CREATE OR REPLACE FUNCTION auditlogfunc() RETURNS TRIGGER AS $example_table$
BEGIN
INSERT INTO AUDIT(EMP_ID, ENTRY_DATE) VALUES (new.ID, current_timestamp);
RETURN NEW;
END;
$example_table$ LANGUAGE plpgsql;
ich mit vielen Tabellen diesen Trigger verwenden möchten, und nicht jede Tabelle Primärschlüssel mit dem Namen ‚id‘ hat (Tabelle keine ‚id‘ Spalte haben kann alle). Also muss ich in irgendeiner Weise herausfinden, wie ich den Primärschlüssel in meiner Triggerfunktion verwenden kann, egal welchen Spaltennamen er hat. Wie kann ich das erreichen?
Ich glaube, Sie würden es für jede Tabelle dynamisch generieren information_schema.columns mit den Tasten zu identifizieren .. – JeffUK
See [hier] (http://8kb.co.uk/blog/2015/01/19/Kopieren-Pavel-Stehules-Simple-Geschichte-Tabelle-aber-mit-der-Jsonb-Typ /) oder [hier] (http://okbob.blogspot.co.uk/2015/01/most-simply -implementation-of-history.html) für zwei Lösungen für einen generischen Audit-Trigger –