In een SQL DBMS is de select-test-insert-benadering een vergissing:niets verhindert een ander proces om de "ontbrekende" rij in te voegen tussen uw select
en insert
verklaringen. Doe dit in plaats daarvan:
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';
Je zou in staat moeten zijn om die hele tekst als een enkele "query" door te geven aan het DBMS. Je zou kunnen overwegen om er een opgeslagen procedure van te maken.