Llamada estándar UPSERT de SQL
Estoy buscando un SQL estándar "UPSERT
"declaración. Una llamada para insertar y actualizar si existe.
Estoy buscando una llamada de trabajo, eficiente y multiplataforma.
He vistoMERGE
, UPSERT
, REPLACE
, INSERT .. ON DUPLICATE UPDATE
pero ninguna declaración satisface las necesidades.
Por cierto, yo uso MYSQL y HSQLDB para unitests. Entiendo que HSQLDB es limitado y puede que no cubra lo que necesito, pero no podría encontrar una forma estándar incluso sin él. Una declaración de que solo MYSQL y HSQLDB también será suficiente por ahora.
He estado mirando alrededor por un tiempo y no pude obtener una respuesta.
Mi mesa:
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)
);
¿Alguna idea?