Dit probleem staat bekend als Phantom Read :
Probeer
BEGIN;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
INSERT INTO mytable (myvalue, mykey) SELECT 'randomvalue', 1 WHERE
(SELECT COUNT(*) FROM mytable WHERE mykey = 1) < 5;
END;
Het transactie-isolatieniveau zorgt ervoor dat transacties alleen waarden invoegen als het aantal minder dan 5 is.