/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Re: MySQL - atomare operationer
Fra : Kristian Damm Jensen


Dato : 02-08-04 19:50


Preben Holm wrote:
> Hej
>
> kan der laves atomare operationer i MySQL eller er det ikke muligt?

Jeg er ikke sikker på, hvad du mener med "atomare operationer", men
hvis du taler om transaktionsstyring, så er svaret ja.
<http://dev.mysql.com/doc/mysql/en/COMMIT.html>

VH
Kristian


 
 
Preben Holm (02-08-2004)
Kommentar
Fra : Preben Holm


Dato : 02-08-04 20:54

> Jeg er ikke sikker på, hvad du mener med "atomare operationer", men
> hvis du taler om transaktionsstyring, så er svaret ja.
> <http://dev.mysql.com/doc/mysql/en/COMMIT.html>

En transaktion er netop atomisk = udelelig! Så ja, det var det jeg mente.

Mange tak.

Jan Bachman (02-08-2004)
Kommentar
Fra : Jan Bachman


Dato : 02-08-04 23:05

>En transaktion er netop atomisk = udelelig! Så ja, det var det jeg mente.

Såfremt du anvender InnoDB, så tag også et kig på transaction
isolation levels. De bestemmer i hvad omfang data låses mens
transaktioner køres og flere af slagsen evt. overlapper hinanden.

/Jan

Preben Holm (02-08-2004)
Kommentar
Fra : Preben Holm


Dato : 02-08-04 21:00

>>kan der laves atomare operationer i MySQL eller er det ikke muligt?
>
>
> Jeg er ikke sikker på, hvad du mener med "atomare operationer", men
> hvis du taler om transaktionsstyring, så er svaret ja.
> <http://dev.mysql.com/doc/mysql/en/COMMIT.html>

Jeg har tænkt mig at anvende det til brug på en hjemmeside. Men der
skriver jeg gerne flere sql-strenge og lader dem evaluere en for en. Vil
det kunne lade sig gøre at starte en transaktion og udføre de
operationer der skal til eller vil det være mere praktisk at samle det
hele i en samlet streng hvor jeg f.eks.

Nu (ASP):
sql = "START TRANSACTION"
cn.execute (sql)

sql = "DELETE FROM table WHERE id = ''"
cn.execute (sql)

sql = "DELETE FROM table WHERE id = ''"
cn.execute (sql)

sql = "COMMIT"
cn.execute (sql)


eller skal det gøres som:

sql = "START TRANSACTION; DELETE FROM table WHERE id = someid; DELETE
FROM table WHERE id = someotherid; COMMIT;"
cn.execute(sql)


Mvh / Preben Holm

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste