sql >> Databasteknik >  >> RDS >> Mysql

Låser MySql automatiskt rader eller måste jag lägga till lås i delningsläge?

Jag skulle tro att baserat på dina svar på mina kommentarer så borde du verkligen inte behöva oroa dig för att manuellt hantera bordslås. InnoDB stöder låsning på radnivå och med autocommit aktiverat (som det är som standard) hanteras faktiskt alla individuella frågor på ett transaktionsmässigt sätt.

Om du nu har flera SQL-frågor som måste hanteras som en enda transaktion (dvs. uppdatera en tabell och sedan uppdatera en annan tabell - antingen lyckas båda eller båda rullas tillbaka) så måste du specifikt starta en transaktion och antingen utföra den eller återställ det efter att de provisoriska frågorna har utförts.

Du kan också använda SET TRANSACTION uttalande om du behöver ändra transaktionsisoleringsnivån (den är "REPEATABLE READ1 som standard).

För mer information kolla in MySQL-dokumentation




  1. Skillnad mellan BYTE och CHAR i kolumndatatyper

  2. Infoga html-kod i en mysql-tabell

  3. Kapslade CASE-satser i MySQL

  4. Konvertera en Unix-tidsstämpel till ett datumvärde i Oracle