Sto cercando un'istruzione SQL standard "UPSERT
". Una chiamata per inserimento e aggiornamento se esiste.Chiamata UPSERT standard SQL
Sto cercando una chiamata funzionante, efficiente e multipiattaforma.
ho visto MERGE
, UPSERT
, REPLACE
, INSERT .. ON DUPLICATE UPDATE
ma nessuna dichiarazione soddisfa le esigenze.
BTW Io uso MYSQL e HSQLDB per unità. Capisco che HSQLDB è limitato e potrebbe non coprire ciò di cui ho bisogno, ma non sono riuscito a trovare un modo standard anche senza di esso. Una dichiarazione che per ora solo MYSQL e HSQLDB saranno sufficienti.
Sono in giro da un po 'e non ho potuto ottenere una risposta.
Il mio tavolo:
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)
);
Qualche idea?
Grazie;)
'INSERT .. ON DUPLICATE UPDATE' è la chiave in' mYSQL'. puoi mostrare alcuni record o forse la struttura del tavolo? –
Sì, ma è supportato solo in MYSQL. HSQLDB e tutti gli altri non lo usano ... – BobTheBuilder
c'è una fusione ANSI (http://en.wikipedia.org/wiki/Merge_%28SQL%29), ma non è implementata in tutti i DBMS. Quindi nessuna speranza per un comando universale. –