sql >> Databáze >  >> RDS >> PostgreSQL

Postgres vloží řádek, pouze pokud je počet řádků pod limitem

Tento problém je známý jako Fantomové čtení :

Zkuste

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

Úroveň izolace transakcí zajistí, že transakce budou vkládat hodnoty pouze v případě, že je počet menší než 5.




  1. Povolená velikost paměti 8589934592 bajtů je vyčerpána

  2. Poskytování rychlejších inovací komunitě MariaDB

  3. Vytvoření formuláře v APEX pro nastavení proměnných v dotazu pro interaktivní sestavu

  4. zobrazení data/času na webových stránkách podle času počítače uživatele v jiné zemi