ugrás a tartalomhoz

Tranzakciók

Anonymous · 2004. Okt. 31. (V), 01.25
Probléma az alábbi tranzakció nem működik.

$parancs=mysql_query("CREATE TABLE CUSTOMER (A INT, B CHAR (20), INDEX (A)) TYPE=InnoDB");
$parancs=mysql_query("BEGIN");
$parancs=mysql_query("INSERT INTO CUSTOMER VALUES (10, 'Heikki')");
$parancs=mysql_query("COMMIT");
$parancs=mysql_query("SET AUTOCOMMIT=0");
$parancs=mysql_query("INSERT INTO CUSTOMER VALUES (15, 'John')");
$parancs=mysql_query("ROLLBACK");

Az kellene kapni, hogy a (15, john) sort a ROLLBACK utasítás törli.
De nem ez történik, hanem mintha ott se lenne a parancs, ez a példa eléggé levan egyszerűsítve.
És ugyanez törlésnél, ha a tranzakcióban szereplő törlés hibát ad akkor az összes előtte lévő törlést ami a tranzakcióban szerepel állítsa vissza az eredeti állapotra.

Ha valaki tudna segíteni azt nagyon megköszönném.

Üdv.
 
1

MySQL verzió?

Bártházi András · 2004. Okt. 31. (V), 17.17
Biztos, hogy elég új MySQL-ed van hozzá? Ha a válasz igen, akkor pedig nézz körül a ROLLBACK leírásánál, hátha valamit nem vettél figyelembe.

-boogie-
2

Verzió

Anonymous · 2004. Okt. 31. (V), 23.39
A 3.23.34-et használtam a szakirodalom azt írja, hogy ebben a verzióban jelent meg.
De most kicseréltem a 4.0.18-ra és tökéletesen működik.
Köszönöm a segítséget.

Üdv.
VG
3

Frissítés

Bártházi András · 2004. Nov. 1. (H), 00.27
Ha frissítesz, akkor talán a 4.1-es változatra is érdemes, ezt már stabilnak minősítették, s további lehetőségek állnak benne rendelkezésre. Egyébként nincs mit, nem gondoltam volna, hogy ilyen egyszerű lesz a megoldás, ez csak egy tipp volt. :)

-boogie-
4

Üdv. De jó tipp. :) Sz

Anonymous · 2004. Nov. 1. (H), 22.04
Üdv.

De jó tipp. :)
Szóval elég meglepő volt, hogy az irodalom szerint már
használható a korábbi verzióban is az Innodb.
Kösz.

Üdv.
VG.