Този проблем е известен като Phantom Read :
Опитайте
BEGIN;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
INSERT INTO mytable (myvalue, mykey) SELECT 'randomvalue', 1 WHERE
(SELECT COUNT(*) FROM mytable WHERE mykey = 1) < 5;
END;
Нивото на изолация на транзакциите ще гарантира, че транзакциите ще вмъкват стойности само ако броят е по-малък от 5.