sql >> Database >  >> RDS >> PostgreSQL

Postgres voegt rij alleen in als het aantal rijen onder een limiet ligt

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.




  1. Toneelstuk! framework - Kan geen verbinding maken met database

  2. Waarom commit SQL*Plus bij afsluiten?

  3. Kan GeomFromText('POINT(..)') niet invoegen in MySQL

  4. Oracle SQL SELECT DATE uit veld DATETIME