4 Stimmen

MySQL multi CREATE TABLE Syntax Hilfe?

Ich versuche, ein MySQL-Skript zu schreiben, das mehrere Tabellen erstellt. Ich habe:

CREATE TABLE `DataBase1`.`tbl_this`(
...
);
CREATE TABLE `DataBase1`.`tbl_that`(
...
);
... (14 more) ...

ABER, nur die erste CREATE TABLE Anweisung ausgeführt wird. Ich erhalte keine Syntaxfehler. Ähm, fehlt mir das MSSQL-Äquivalent von GO ? Was mache ich hier falsch; wie bringe ich dieses Baby dazu, alle Tabellen auszuführen?

6voto

Bill Karwin Punkte 493880

Wie führen Sie das Skript aus?

Wenn Sie versuchen, es programmatisch auszuführen, sollten Sie wissen, dass die MySQL-API standardmäßig nur eine Anweisung auf einmal ausführt. Sie können sie nicht mit Semikolons aneinanderreihen und erwarten, dass sie alle Anweisungen ausführt.

Sie können jede CREATE TABLE Anweisung einzeln in einer Schleife, oder Sie können ein Skript ausführen, indem Sie es als Eingabe in die mysql Befehlszeilen-Client.

Es ist nicht so einfach, eine universelle Skript-Runner-Klasse für Ihre Anwendung zu schreiben, da die vollständige Skript-Syntax viele Eckfälle enthält.

Siehe die Beispiele für die Eckfälle in meiner Antwort auf Laden von .sql-Dateien aus PHP heraus .

4voto

Florian Gutmann Punkte 2496

Die Syntax für das Erstellen von Tabellen sieht gut aus. Wahrscheinlich führt das Tool, das Sie zur Ausführung Ihrer SQL verwenden, nur die erste Anweisung aus.

1voto

JoeLoco Punkte 1966

Versuchen Sie dies:

Datenbank_name verwenden;

Tabelle a erstellen Tabelle b erstellen Tabelle c erstellen..;

0voto

Matthew Jones Punkte 24876

Verweisen die Tabellen aufeinander (z. B. Primärschlüssel und dergleichen)? Tabellen werden seriell erstellt. Wenn Ihre zweite Tabelle also auf eine Tabelle verweist, die noch nicht erstellt wurde, schlägt sie fehl.

0voto

a1ex07 Punkte 36186

Wie führen Sie Ihr Skript aus? Wenn Sie es von der Kommandozeile aus ausführen, sollte es in etwa so aussehen:

mysql -u[username] -p[password] --database DataBase1 < scriptname.sql

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X