In einem SQL-DBMS ist der Select-Test-Insert-Ansatz ein Fehler:Nichts hindert einen anderen Prozess daran, die "fehlende" Zeile zwischen Ihrem select
einzufügen und insert
Aussagen. Tun Sie dies stattdessen:
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';
Sie sollten in der Lage sein, diesen gesamten Text als einzelne "Abfrage" an das DBMS zu übergeben. Vielleicht möchten Sie es in eine gespeicherte Prozedur umwandeln.