Rule für Insert auf View, Spalte nicht erkannt?

Hallo,
ich bin dabei eine Regel zu erstellen um Insert über eine view zu machen. Darüber habe ich hier auch Themen gefunden an die ich mich gerne mit meiner Frage angehängt hätte, aber die Themen sind geschlossen. Deshalb ein neues Thema.

CREATE RULE "insert_view_versteigerung" AS ON INSERT TO "view_versteigerung" DO INSTEAD(
INSERT INTO "tbl_versteigerung" VALUES (NEW.versteigerung_id, NEW.versteigerung_uuid, NEW.abgebende_dienststelle, NEW.kfz_briefnummer, NEW.kennzeichen,
									   NEW.fahrzeugart, NEW.fabrikat, NEW.motor, NEW.fahrgestellnummer, NEW.hubraum, NEW.leistung,
									   NEW.erstzulassung, NEW.hu, NEW.laufleistung, NEW.adv_nummer, NEW.funktionsnummer, NEW.aktenzeichen,
									   NEW.getriebe, NEW.unfall, NEW.mindestgebot, NEW.fahrbereit, NEW.bild, NEW.geloescht); 

INSERT INTO htbl_versteigerung_nummer_datum_kaeufer 
	VALUES (NEW.versteigerungsnummer_id, NEW.datum_id, (SELECT CURRVAL("tbl_versteigerung_id_seq"))));

Als Fehlermeldung erscheint:
ERROR: Spalte new.versteigerung_id existiert nicht
LINE 2: INSERT INTO “tbl_versteigerung” VALUES (NEW.versteigerung_id…

Die ganzen Spalten gibt es aber genau so in der Tabelle tbl_versteigerung.
Ich habe nach Beispielen gesucht wie man solche Regeln für Inserts auf View’s erstellt und das mit NEW.spaltenname gefunden, aber bei mir gibt es unter PGAdmin 4 v.7.0 die Fehlermeldung.
Auf der Konsole habe ich es noch nicht probiert gebe ich zu.

Vielen Dank und viele Grüße

Die Spaltennamen des NEW records beziehen sich auf die Spaltennamen der View, nicht der Zieltabelle.

Übrigens:

(SELECT CURRVAL("tbl_versteigerung_id_seq")) kann man zu CURRVAL("tbl_versteigerung_id_seq") vereinfachen.

Ausserdem solltest Du immer die Spalten der Zieltabelle qualifizieren:

 insert into tbl_versteigerung(versteigerung_id, versteigerung_uuid, ...) 
 values (...)

Vielen Dank für die Hinweise.

Aber ich kapiere nicht was ich falsch mache. Ich habe jetzt mal der Übersichthalber etwas abgespeckt.

CREATE RULE insert_view_versteigerung AS ON INSERT TO view_versteigerung DO INSTEAD(
INSERT INTO tbl_versteigerung (kennzeichen) VALUES (new.Kennzeichen));

ERROR:  Spalte new.kennzeichen existiert nicht
LINE 2: ...SERT INTO tbl_versteigerung (kennzeichen) VALUES (new.Kennze...
                                                             ^
HINT:  Vielleicht wurde beabsichtigt, auf die Spalte »new.Kennzeichen« zu verweisen. 

FEHLER:  Spalte new.kennzeichen existiert nicht
SQL-Status: 42703
Zeichen: 138

View sowie Tabelle enthalten die Spalte Kennzeichen. Und es kommt auch noch der Hinweis: Vielleicht wurde beabsichtigt…
Jaaa, es wurde beabsichtigt.

Ich finde aber auch kein wirklich schönes Beispiel im Netz für eine Insert-Rule auf einen VIEW.

Klingt so als hättest Du dummerweise die Spalten mit doppelten Anführungszeichen angelegt. Kennzeichen und "Kennzeichen" sind zwei verschiedene Namen.

Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.