H2 SQL-database – INSERT, wenn der datasatz nicht existiert

Ich möchte eine H2-database initialisieren, aber ich bin nicht sicher, ob die datasätze existieren. Wenn sie existieren, möchte ich nichts tun, aber wenn sie nicht existieren, möchte ich die Standardwerte schreiben.

Etwas wie das:

IF 'number of rows in ACCESSLEVELS' = 0 INSERT INTO ACCESSLEVELS VALUES (0, 'admin'), (1, 'SEO'), (2, 'sales director'), (3, 'manager'), (4, 'REP') ; 

Solutions Collecting From Web of "H2 SQL-database – INSERT, wenn der datasatz nicht existiert"

Folgendes funktioniert für MySQL, PostgreSQL und die H2-database:

 drop table ACCESSLEVELS; create table ACCESSLEVELS(id int, name varchar(255)); insert into ACCESSLEVELS select * from ( select 0, 'admin' union select 1, 'SEO' union select 2, 'sales director' union select 3, 'manager' union select 4, 'REP' ) x where not exists(select * from ACCESSLEVELS); 
 MERGE INTO ACCESSLEVELS KEY(ID) VALUES (0, 'admin'), (1, 'SEO'), (2, 'sales director'), (3, 'manager'), (4, 'REP'); 

Aktualisiert vorhandene Zeilen und fügt Zeilen ein, die nicht vorhanden sind. Wenn keine Schlüsselspalte angegeben ist, werden die Primärschlüsselspalten zum searchn der Zeile verwendet.