проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с '' execute_transaction '(IN sql_text VARCHAR (8000)) - PullRequest
0 голосов
/ 20 октября 2019
DELIMITER //
CREATE PROCEDURE 'execute_transaction'(IN sql_text VARCHAR(8000))

BEGIN 
    DECLARE EXIT HANDLER FOR SQLEXCEPTION
    BEGIN
        Rollback;
        SELECT CONCAT(sql_text, 'is not valid');
    END;
    SET autocommit = 0;
    SET TRANSACTION ISOLATION LEVEL Serializable;

    START TRANSACTION;

    select * from customer where customer_id='A';
    select * from customer where customer_id='B';
    update customer set Name='alireza mohammadi' where customer_id='B';

    IF(@@session.error_count>0) THEN
        Rollback;
    ELSE
        COMMIT;
    END IF;
END;
//

Ошибка:

Код ошибки: 1064. У вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с '' execute_transaction '(IN sql_text VARCHAR (8000)) BEGIN DECLARE EXIT HANDLER F' в строке 1

...