Hallo und Guten Tag,
ich möchte einen geänderten Datensatz, bevor er geändert wird, in einer zweiten baugleichen Tabelle (allerdings ohne Constraints und Primärschlüssel) speichern. Die Quelltabelle heißt data_standard_pitzer, die Zieltabelle heißt log_data_standard_pitzer. In der update function habe ich das so versucht:
INSERT INTO "public"."log_data_standard_pitzer" select * from old;
Wenn ich nun einen Datensatz ändere passiert rein gar nichts. Es kommt auch keine Fehlermeldung. Es geht auch nicht ohne Schema oder ohne Häkchen. Es geht ebenfalls nicht, wenn ich die Zielfelder alle einzeln anspreche.
Dann kam mir noch der Gedanke, es mit einer eigenen Function zu versuchen (hier probeweise nur mit drei Spalten, die Tabellen enthalten eigentlich mehr, pcon und datatype sind Primärschlüssel der Quelltabelle):
CREATE FUNCTION fn_add-log_data_standard_pitzer(in_pcon character varying, in_datatype character varying, in_remark character varying) RETURNS void
AS $$begin
insert into log_data_standard_pitzer (pcon, datatype, remark) values (in_pcon, in_datatype, in_remark);
end;$$
LANGUAGE plpgsql;
Diese könnte ich in der update-Funktion dann aufrufen mit
select fn_add-log_data_standard_pitzer(old.pcon, old.datatype, old.remark
Doch leider scheitere ich schon mit dem create function code (SQL-Fehler).
Kann mir jemand einen Tip geben? Das kann doch nicht so schwer sein. Ich habe auch keinen passenden Thread hier im Forum gefunden.
Eremit