sql >> Databáze >  >> RDS >> Mysql

Transakce MySQL a souběžné vkládání

Abyste se vyhnuli scénáři, který popisujete, musíte obě připojení umístit na serializovatelnou úroveň izolace transakcí, a to buď nastavením tx_isolation při každém připojení pomocí:

SET @@tx_isolation = SERIALIZABLE;

nebo

SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;

nebo nastavením úrovně globální izolace pomocí:

SET @@global.tx_isolation = SERIALIZABLE;

nebo

SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;

který je zděděn každým následně otevřeným spojením. Na této úrovni se transakce zablokují na jakékoli dotazy, pokud již probíhá jiná transakce, tzn. transakce již vyvolala dotaz (čtení nebo zápis) na stejné tabulky.

Viz dokumentaci mysql pro další podrobnosti.



  1. Jak mohu napsat úplný vyhledávací indexový dotaz, který nebude brát v úvahu žádná ignorovaná slova?

  2. chyba:ORA-65096:neplatný společný název uživatele nebo role v oracle

  3. jednoduchý SQL dotaz, kombinovat výsledky a rozdělovat

  4. PostgreSQL, jak zjistit, které dotazy byly spuštěny