Exemplu de comisionare și revenire a tranzacției Mysql (Programare, Mysql)

Dheeraj Sachan a intrebat.

Următoarea interogare mysql dă următoarea eroare.

ÎNTREBARE –

    set @rollback = 0; 
    start transaction;    
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @rollback = 1;
    INSERT INTO `tablea` (`date`) VALUES (NOW());
    INSERT INTO `tableb` (`date`) VALUES (NOW());
    INSERT INTO `tablec` (`date`) VALUES (NOW());
    IF @rollback THEN
        ROLLBACK;
    ELSE
        COMMIT;
    END IF;

eroare :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @rollback = 1' at line 1 

Comentarii

  • Declarațiile se află într-o procedură stocată? Vedeți stackoverflow.com/a/19908197/1316440 pentru un exemplu. –  > Por wchiquito.
1 răspunsuri
Crater

DECLARE poate fi folosit doar între declarațiile BEGIN și END care pot apărea doar în cadrul unei proceduri stocate, funcții, declanșatoare sau definiții de eveniment.

A se vedea: DECLARE, DECLARARE, DECLARE, DECLARE, DECLARE, DECLARE, DECLARE, DECLARE, DECLARE: http://dev.mysql.com/doc/refman/5.7/en/sql-syntax-compound-statements.html

Tags: