REPLACE? Bist du dir sicher, im richtigen Forum zu sein?
Ansonsten tipp doch mal in die Suche auf der PostgreSQL-Webseite den Begriff "upsert" ein.
Hallo,
ich möchte das ein Datensatz erstellt wird wenn der angegebene Index nicht vorhanden ist und wenn er vorhanden ist, sollen alle Atribute ersetzt werden.
Ich hab mich bereits mit REPLACE auseinander gesetzt, aber mit dieser Funktion auch kein Lösungsansatz erarbeiten können.
Ein kleines Beispiel:
artikelnummer, Name , preis
wie könnte ich den Datensatz veränder bzw. erstellen(fals nicht vorhanden) wenn ich die selbe Artikelnummer eingeb?
Vielen Dank
mfg Mark
REPLACE? Bist du dir sicher, im richtigen Forum zu sein?
Ansonsten tipp doch mal in die Suche auf der PostgreSQL-Webseite den Begriff "upsert" ein.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Du suchst nach einem MERGE Befehl, den PostgreSQL (noch) nicht hat.
Das übliche Vorgehen ist, dass Du einfach ein UPDATE machst und dann prüfst ob ein Datensatz geändert wurde.
Falls kein Datensatz geändert wurde, wird der INSERT gemacht.
Im Handbuch ist auch ein Beispiel wie man das elegant in einer Funktion kapselt:
http://www.postgresql.org/docs/curre...UPSERT-EXAMPLE
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'
Zwichen UPDATE und INSERT hast du aber eine Race Condition.
Die musst du ggf. über einen Lock abfangen.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Klar, der folgende INSERT kann natürlich scheitern - aber das kann schliesslich jeder INSERT.
Ich bin kein Freund von (table) locks, und würde deswegen eher versuchen den Fehler beim INSERT sauber zu behandeln (auch hier wieder: wie bei jedem anderen INSERT auch).
Wie man genau damit umgehen soll, hängt (wie immer) stark vom Anwendungsfall und den Anforderungen ab.
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'
Alles klar, weiß ich bescheid ich probier es erst einmal =D
Vielen Dank
Mark Brings
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen