Originariamente inviato da mkfs.ext2
Buonasera, ho un problema con le transazioni di MySQL.
Il MySQL che utilizzo è "5.1.46-community MySQL Community Server".
In particolare, definisco
codice:
create database mytest;
use mytest;
create table t1 (id integer primary key) type=InnoDB;
create table t2 (id integer primary key) type=InnoDB;
Effettuo un primo inserimento, in particolare inserisco in t1 il valore 1 e in t2 il valore 1, quindi
codice:
set autocommit=0;
begin;
insert into t1 set id=1;
insert into t2 set id=1;
commit;
Ora effettuo un secondo inserimento, in particolare inserisco in t1 il valore 1 e in t2 il valore 2, quindi
codice:
set autocommit=0;
begin;
insert into t1 set id=1;
insert into t2 set id=2;
commit;
Ora il problema è che nella seconda transazione c'è un errore (voluto) ossia inserisco su t1 l'id pari a 1, inserito nella precedentemente transazione. Quando eseguo la seconda transazione il primo insert mi da un errore, mentre il secondo insert va a buon fine anche se contenuto in una transazione! Assurdo! Qualcuno può spiergarmi qual è il problema?