Команды не синхронизированы. Ошибка MySQL – возможно, отсутствует фиксация [дубликат]MySql

Форум по Mysql
Ответить
Anonymous
 Команды не синхронизированы. Ошибка MySQL – возможно, отсутствует фиксация [дубликат]

Сообщение Anonymous »

Я пытаюсь запустить следующее:

Код: Выделить всё

BEGIN TRANSACTION;
CREATE TABLE IF NOT EXIST abc();
SELECT( IF( ( SELECT 1 FROM information_schema.statistics WHERE index_name = 'abc_x' AND table_name = 'abc' ) > 0, SELECT 0, CREATE UNIQUE INDEX abc_x ON abc()));
При попытке выполнить последний оператор я получаю сообщение об ошибке в заголовке.
Означает ли это, что я не могу выполнить SELECT до фиксации оператора CREATE, поскольку таблица еще не видна? Или происходит что-то еще?
Использование собственного соединителя MySQL и MySQL версии 8.0.
РЕДАКТИРОВАТЬ:
Позвольте мне дать больше контекста:
Мой фактический код выглядит примерно так:

Код: Выделить всё

std::vector queries;
queries.push_back( L"CREATE TABLE IF NOT EXIST abc(...);" );
queries.push_back( L"CREATE TABLE IF NOT EXIST def(...);" );
queries.push_back( L"SELECT( IF( ( SELECT 1 FROM information_schema.statistics WHERE index_name = 'abc_x' AND table_name = 'abc' ) > 0, SELECT 0, CREATE UNIQUE INDEX abc_x ON abc()));" );
Затем в цикле я пытаюсь запустить эти команды.
На самом деле существует гораздо больше команд создания таблицы/индекса, а затем некоторые таблицы заполняются.
Проблема в том, что при попытке создать индекс для таблицы я получаю указанную выше ошибку.
Все это должно работать, и я просто не понимаю, почему это не удается.
/>Он работает в SQL Server и PostgreSQL, но не в MySQL.
Код в EDIT запускается внутри приложения C++. Поэтому использование SP в качестве ответа на связанный вопрос бесполезно.

Подробнее здесь: https://stackoverflow.com/questions/797 ... ing-commit
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»