Trong SQL DBMS, cách tiếp cận select-test-insert là một sai lầm:không có gì ngăn cản quá trình khác chèn hàng "bị thiếu" giữa select
của bạn và insert
các câu lệnh. Làm điều này thay thế:
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';
Bạn có thể chuyển toàn bộ văn bản đó dưới dạng một "truy vấn" duy nhất tới DBMS. Bạn có thể muốn xem xét biến nó thành một thủ tục được lưu trữ.