H2 ON DUPLICATE KEY

Mattepuffo's logo
H2 ON DUPLICATE KEY

H2 ON DUPLICATE KEY

In H2 non abbiamo l'istruzione ON DUPLICATE KEY, ma possiamo comunque raggiungere lo scopo in due modi diversi.

Alla fine della fiera il risultato è lo stesso.

La nostra tabella ha questi campi:

  • email
  • nome
  • cognome

Dove email è undice univoco.

Quindi per fare l'insertimento possiamo usare MERGE:

MERGE INTO persone (email, nome, cognome)
KEY(email) 
VALUES ('mario.rossi@email.com', 'Mario', 'Rossi');

Se trova l'email allora andrà in update degli altri campi.

Una seconda possibilità sarebbe ON CONFLICT (CAMPO) DO UPDATE, solo che a me non ha funzionato.

Dovrebbe essere compatibile solo con le versioni di H2 >= 2.0.

Vi riporto comunque un esempio se volete provare:

INSERT INTO persone (email, nome, cognome)
VALUES ('mario.rossi@email.com', 'Mario', 'Rossi')
ON CONFLICT (email) DO UPDATE SET 
    nome = EXCLUDED.nome,
    cognome = EXCLUDED.cognome;

Enjoy!


Condividi

Commentami!