sql >> Databasteknik >  >> RDS >> Mysql

Radversionshantering för MySql

Mysql har ingen inbyggd rowversioning-mekanism. Även om det kan verka OK att använda en tidsstämpeltyp, kommer du att misslyckas med detta för frågor som uppdaterar flera rader samtidigt och som tar längre tid än upplösningen av tidsstämpeln eftersom det tilldelade värdet baseras på början av ändringen och inte slutet av förändringen.

Så om din uppdateringsfråga påverkar 100 rader kommer alla rader att ha samma tidsstämpel (säg värdet 2015-10-28 09:47:10.123456). Men det är möjligt att raderna inte blir färdigskrivna förrän 2015-10-28 09:47:10.654321.

Om du, separat, letar efter alla ändrade rader baserat på någon annan tidsstämpel, (säg 2015-10-28 09:47:10.500000), kommer du inte att få de resultat du vill ha. Och beroende på din kod kan du missa de 100 raderna som ändrats.

Det är det faktum att ändringar av rader nu kan ha en tidsstämpel tidigare som du inte bara kan jämföra 2 tidsstämplar för att få alla ändrade rader.



  1. SQL-fråga för att översätta en lista med nummer som matchas mot flera intervall, till en lista med värden

  2. enkel valideringsmodul för användarinloggning med nod

  3. PostgreSQL med ägarproblem för hamnarbetare

  4. skapa mysql-tabell om den inte finns