Befehle sind nicht synchron. MySQL-Fehler – möglicherweise fehlt Commit [Duplikat]MySql

MySQL DBMS-Forum
Anonymous
 Befehle sind nicht synchron. MySQL-Fehler – möglicherweise fehlt Commit [Duplikat]

Post by Anonymous »

Ich versuche Folgendes auszuführen:

Code: Select all

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()));
Aus der letzten Anweisung erhalte ich:

Befehle nicht synchron; Sie können diesen Befehl jetzt nicht ausführen

Bedeutet das, dass ich SELECT nicht ausführen kann, bevor ich die CREATE-Anweisung festschreibe, weil die Tabelle noch nicht sichtbar ist? Oder ist da noch etwas anderes los? Ich verwende den nativen MySQL-Connector und die MySQL-Version 8.0.
Mein Code:

Code: Select all

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()));" );
Dann versuche ich in der Schleife, diese Befehle auszuführen. Es gibt noch mehr CREATE TABLE/

Code: Select all

CREATE INDEX
-Anweisungen und dann werden einige Tabellen gefüllt. Beim Versuch, den Index zu erstellen, erhalte ich die Fehlermeldung. Es funktioniert in SQL Server und PostgreSQL, aber nicht in MySQL. Der Code ist in C++, daher ist die Verwendung von SP (Antwort in der verlinkten Frage) nicht hilfreich.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post