In un DBMS SQL, l'approccio select-test-insert è un errore:nulla impedisce a un altro processo di inserire la riga "mancante" tra select
e insert
dichiarazioni. Fai invece questo:
INSERT INTO mytable (color, brightness, size, age)
SELECT color, brightness, size, age
FROM mytable
WHERE NOT EXISTS (
select 1 from
from mytable
where color = 'X' and brightness = 'Y'
);
SELECT (color, brightness, size, age)
FROM mytable
WHERE color = 'X' AND brightness= 'Y';
Dovresti essere in grado di passare l'intero testo come una singola "query" al DBMS. Potresti prendere in considerazione l'idea di trasformarlo in una stored procedure.