Ich bin auf der Suche nach einer Standard-SQL-Anweisung "UPSERT
". Ein Aufruf zum Einfügen und Aktualisieren, falls vorhanden.SQL-Standard-UPSERT Anruf
Ich bin auf der Suche nach einem funktionierenden, effizienten und plattformübergreifenden Anruf.
Ich habe gesehen MERGE
, UPSERT
, REPLACE
, INSERT .. ON DUPLICATE UPDATE
aber keine Aussage erfüllt die Bedürfnisse.
BTW Ich verwende MYSQL und HSQLDB für unitests. Ich verstehe, dass HSQLDB begrenzt ist und möglicherweise nicht deckt, was ich brauche, aber ich konnte einen Standardweg auch ohne es nicht finden. Eine Aussage, dass nur MYSQL und HSQLDB auch für jetzt genug sind.
Ich habe mich eine Weile umgeschaut und konnte keine Antwort bekommen.
Meine Tabelle:
CREATE TABLE MY_TABLE (
MY_KEY varchar(50) NOT NULL ,
MY_VALUE varchar(50) DEFAULT NULL,
TIME_STAMP bigint NOT NULL,
PRIMARY KEY (MY_KEY)
);
Jede Idee?
Thanx;)
'INSERT .. ON DUPLICATE UPDATE' ist der Schlüssel in' mYSQL'. Können Sie einige Aufzeichnungen oder vielleicht die Tabellenstruktur zeigen? –
Ja, aber es wird nur in MySQL unterstützt. HSQLDB und alle anderen benutzen es nicht ... – BobTheBuilder
gibt es eine ANSI-Zusammenführung (http://en.wikipedia.org/wiki/Merge_%28SQL%29), aber es ist nicht in allen DBMS implementiert. Also keine Hoffnung auf ein universelles Kommando. –