sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgres indsæt kun række, hvis rækkeantallet er under en grænse

Dette problem er kendt som Phantom Read :

Prøv

BEGIN;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
INSERT INTO mytable (myvalue, mykey) SELECT 'randomvalue', 1 WHERE
    (SELECT COUNT(*) FROM mytable WHERE mykey = 1) < 5;
END;

Transaktionsisolationsniveauet sikrer, at transaktioner kun vil indsætte værdier, hvis antallet er mindre end 5.




  1. hvordan man importerer excel-fil (XLSX) til mysql ved hjælp af nodejs

  2. Skrivning af læsbar kode til VBA – Prøv* mønster

  3. Er der nogen undvigende syntaks for psql-variabel inde i PostgreSQL-funktioner?

  4. Hvordan får man kategorien kloge værdier relateret til bruger?