webForumDet fria alternativet

MySQL och Rollback

Databaser & SQLur Databashanterare & SQL

4 svar · 381 visningar · startad av Qimen

Medlem sedan juni 20015 009 inlägg
Frågan#1

Hej,

Har suttit och funderat en del om vad man ska göra när en sql-fråga går fel och om man redan har gjort ändringar i en annan fråga som direkt påverkar denna.

T.ex. vi har en användare som ska tas bort. Varje användare har ett fält i två olika tabeller. En tabell med användaren och en annan med användarens uppgifter. Om vi börjar med att ta bort användaren och sedan går vidare till att ta bort användarens uppgifter och att något går fel där.

Hur gör man då? Skapar en transaktion? och hur är stödet för det i MySQL 5? :)

Kollade en del på php.net och i dokumentationen till MySQL och hittade något om en sql-fråga, "ROLLBACK;". Men vet inte hur jag ska tillämpa den och om jag ska det eller ej. Verkar höra ihop med transaktioner. :q

Medlem sedan apr. 2006190 inlägg
#2

Det lättaste skulle ju vara om php stödjer transactions. I sånt fall kommer php att sköta sql-frågorna åt dig. I annat fall så kanske detta kan vara nått att läsa in sig på:
http://dev.mysql.com/doc/refman/5.0/en/xa.html

Medlem sedan juli 20011 084 inlägg
#3

Jo det skall nog gå bra (även i 4.1), men om jag uppfattat det rätt så stöds endast transactions på innoDB-tabeller. Enklast är kanske att lägga in allt i en stored procedure och sedan anropa den. Den här sidan bör kunna vara till hjälp: http://dev.mysql.com/doc/refman/5.0/en/commit.html

Medlem sedan dec. 19996 721 inlägg
Medlem sedan juni 20015 009 inlägg
#5

Som jag misstänkte då, dags att börja använda transaktioner (en helt ny bit för mig). Men då till en andra fråga angående detta. Jag måste använda InnoDB och det ska inte vara några problem att byta rakt över från MyISAM. Men ska jag byta på alla tabeller eller bara de som kommer beröras av transaktionerna? :)

138 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
133 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)