Ошибка 1064 при попытке использования mysql-транзакции в Pycharm

Я пишу свой проект на Flask. Я хочу создать транзакцию, которая будет мне добавлять переданные значения в строку таблицы, а затем, вызывать хранимую процедуру. У меня есть следующий обработчик:

class UserDatabase:

def __init__(self, config: dict):
    self.config = config

def __enter__(self):
    try:
        self.conn = connect(**self.config)
        self.cursor = self.conn.cursor()
        return self.cursor
    except OperationalError as err:
        if err.args[0] == 1045:
            print('Неверный логин и пароль, повторите подключение')
            return None
        if err.args[0] == 2003:
            print('Неверно введен порт или хост для подключения к серверу')
            return None
        if err.args[0] == 1049:
            print('Такой базы данных не существует')
            return None
    except UnicodeEncodeError as err:
        print('Были введены символы на русском языке')
        return None
    except InterfaceError as err:
        print(err)
        return err

def __exit__(self, exc_type, exc_value, exc_trace):
    if exc_value:
        if exc_value == 'Курсор не был создан':
            print('Курсор не создан')
        elif exc_value.args[0] == 1064:
            print('Синтаксическая ошибка в запросе!')
        elif exc_value.args[0] == 1146:
            print('Ошибка в запросе! Такой таблицы не существует.')
        elif exc_value.args[0] == 1054:
            print('Ошибка в запросе! Такого поля не существует.')
        return False
    else:
        self.conn.commit()
        self.cursor.close()
        self.conn.close()
        return True

и непосредственно коннект к базе:

def work_with_db_insert(dbconfig : dict, _SQL : str) -> list:
with UserDatabase(dbconfig) as cursor:
    cursor.execute(_SQL)

Вот сам скрипт транзакции:

START TRANSACTION;
BEGIN;
   INSERT INTO bilboard.string_order ( `start_ar`, `end_ar`, `bil_id`, `ord_id`)
VALUES ('$date_start', '$date_end', '$bil_id', '$ord_id');
call new_procedure('$ord_id');
COMMIT;

Этот скрипт отлично работает в MySqlWorkbench, однако в самом интерфейсе Pycharm и моего проекта, падает с кодом ошибки:

Синтаксическая ошибка в запросе! pymysql.err.ProgrammingError: (1064, "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 'BEGIN;\n INSERT INTO bilboard.string_order ( start_ar, end_ar, bil_id, `o' at line 2")

Что я не так делаю?


Ответы (0 шт):