В SQL СУБД подходът за избор-тест-вмъкване е грешка:нищо не пречи на друг процес да вмъкне „липсващия“ ред между вашия select
и insert
изявления. Направете това вместо това:
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';
Трябва да можете да подадете целия този текст като една "заявка" към СУБД. Може да обмислите да го превърнете в съхранена процедура.