Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [PHP, MySQL] transazioni

    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?

  2. #2

    Re: [PHP, MySQL] transazioni

    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?
    Nessuna soluzione?

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Dovresti chiedere nella sezione Database, il tuo problema non c'entra con PHP.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.