Frage

Ich habe eine SQL-Datei und ich möchte es in MySQL-Datenbank laden. Ich weiß nicht, aus welcher Datenbank (MySQL oder MS-SQL) es erstellt wurde.

Nun, ich versuche, die Datei in MySQL-Datenbank zu importieren. Es wird Fehler beim Importieren und Ausführen dieser Datei zeigt.

  

Q1. Also, meine Frage ist, ob die SQL-Datei erzeugt von MySQL und MS-SQL unterschiedlich ist?

. Hinweis: Ich verwende SQLYog Software (grafische Oberfläche für MySQL) für die Datei importieren

Hier ist der ERROR:

  

Abfrage:   CREATE TABLE ads (   id Bigint (20) NOT NULL auto_increment,   city_id int (11) NOT NULL,   type Text collate utf8_bin NOT NULL,   town Text collate utf8_bin NOT NULL,   address Text collate utf8_bin NOT NULL,   price Text collate utf8_bin NOT NULL,   info Text collate utf8_bin NOT NULL,   link Text collate utf8_bin NOT NULL,   hasImage int (11) NOT NULL,   language varchar (2) collate utf8_bin NOT NULL,   time_added varchar (255) collate utf8_bin NOT NULL,   PRIMARY KEY (id)   ) ENGINE = InnoDB STANDARD charset = UTF-8-COLLATE = utf8_bin AUTO_INCREMENT = 1

Fehler aufgetreten bei: 2009-09-08 17.41.01 Linie no.:35 Fehlercode: 1050 - Tabelle 'ads' ist bereits vorhanden

  

Abfrage:   CREATE TABLE ads (   id Bigint (20) NOT NULL auto_increment,   city_id int (11) NOT NULL,   type Text collate utf8_bin NOT NULL,   town Text collate utf8_bin NOT NULL,   address Text collate utf8_bin NOT NULL,   price Text collate utf8_bin NOT NULL,   info Text collate utf8_bin NOT NULL,   link Text collate utf8_bin NOT NULL,   hasImage int (11) NOT NULL,   language varchar (2) collate utf8_bin NOT NULL,   time_added varchar (255) collate utf8_bin NOT NULL,   PRIMARY KEY (id)   ) ENGINE = InnoDB STANDARD charset = UTF-8-COLLATE = utf8_bin AUTO_INCREMENT = 1

Fehler aufgetreten bei: 2009-09-08 17.41.21 Linie no.:35 Fehlercode: 1050 - Tabelle 'ads' ist bereits vorhanden

  

Abfrage:   CREATE TABLE ads (   id Bigint (20) NOT NULL auto_increment,   city_id int (11) NOT NULL,   type Text collate utf8_bin NOT NULL,   town Text collate utf8_bin NOT NULL,   address Text collate utf8_bin NOT NULL,   price Text collate utf8_bin NOT NULL,   info Text collate utf8_bin NOT NULL,   link Text collate utf8_bin NOT NULL,   hasImage int (11) NOT NULL,   language varchar (2) collate utf8_bin NOT NULL,   time_added varchar (255) collate utf8_bin NOT NULL,   PRIMARY KEY (id)   ) ENGINE = InnoDB STANDARD charset = UTF-8-COLLATE = utf8_bin AUTO_INCREMENT = 1

Fehler aufgetreten bei: 2009-09-08 17.41.35 Linie no.:35 Fehlercode: 1050 - Tabelle 'ads' ist bereits vorhanden

  

Abfrage:   CREATE TABLE ads (   id Bigint (20) NOT NULL auto_increment,   city_id int (11) NOT NULL,   type Text collate utf8_bin NOT NULL,   town Text collate utf8_bin NOT NULL,   address Text collate utf8_bin NOT NULL,   price Text collate utf8_bin NOT NULL,   info Text collate utf8_bin NOT NULL,   link Text collate utf8_bin NOT NULL,   hasImage int (11) NOT NULL,   language varchar (2) collate utf8_bin NOT NULL,   time_added varchar (255) collate utf8_bin NOT NULL,   PRIMARY KEY (id)   ) ENGINE = InnoDB DEFAULT CHARSET = UTF-8-COLLATE = utf8_bin AUTO_INCREMENT = 1

Fehler aufgetreten bei: 2009-09-08 17.42.07 Linie no.:35 Fehlercode: 1050 - Tabelle 'ads' ist bereits vorhanden

  

Abfrage:   1 Stanford University 6700 http://www.orkut.co.in   .   .   .

War es hilfreich?

Lösung

Die Dateierweiterung „.sql“ ist im Wesentlichen sinnlos: es nur da ist, so dass Sie wissen, was die Datei ist. Es wird nur eine einfache Textdatei mit SQL sein, die Sie im Editor öffnen können. Daher gibt es keine speziellen „mysql“ oder „SQL Server“ Erweiterungen.

Die Fehler Sie es "Table 'ads' already exists" bekommen sind, weil Sie versuchen, eine Tabelle zu erstellen, die bereits in der Datenbank vorhanden ist. (Haben Sie die Fehler?) Sie haben ein paar Optionen:

  1. Ändern Sie den SQL folgt aus:

    CREATE TABLE IF NOT EXISTS ads ( id bigint(20) ...
    
  2. Ändern Sie den SQL folgt aus:

    DROP TABLE IF EXISTS ads;
    CREATE TABLE ads (id bigint(20) ...
    
  3. lösche alle Tabellen in der DB zuerst.

Andere Tipps

MySQL und Microsoft SQL Server haben, implementieren leider verschiedene Dialekte von SQL. So ist die Antwort auf Ihre Frage:

  

Q1. So ist meine Frage, ob die   SQL-Datei erzeugt von MySQL und   MS-SQL ist anders?

"ja, ganz Possiby". Allerdings Sie erscheint sind zeigt die spezifischen Fehler aufgrund streng auf eine Anweisung in Zeile „Create table“ 35 wird ausgeführt immer und immer und immer wieder, und das kann nicht davon abhängen, wie zum Dialekt Unterschiede, so dass die Ursachen sein müssen andere, die (wie Bugs oder subtiles Format Unterschiede in dem, was dem „SQLYog“ -Programm, das ich bin nicht vertraut mit, erwartet als Eingang).

Es hängt davon ab, welche Software diese Datei exportiert. Überprüfen Sie auch im Header der Datei, die Software es tat und analysieren die Syntax, um zu bestimmen, wo diese Datei gehört. Beachten Sie auch, dass SQL ist Microsoft SQL Server.

Ja. SQL ist sehr unterschiedlich von Datenbank zu Datenbank. Zwar gibt es eine SQL-Standard die meisten Datenbanken unterstützen viel, zahlreiche jede Datenbank hat, unvereinbar Nicht-Standard-Eigenschaften und Funktionen weit über den von der Norm festgelegt.

Es gibt auch viel Migration docs verfügbar:

MSSQL => MySQL: http://dev.mysql.com/tech-resources/ Artikel / Migration-from-microsoft.html

MySQL => MSSQL: http://technet.microsoft.com/en-us/library/cc966396. aspx

Es gibt zwei offensichtliche Dinge in Ihrer CREATE TABLE-Anweisung, dass MSSQL nicht unterstützt, die sofort springen:

ENGINE=InnoDB
AUTO_INCREMENT=1

Das sind die beiden MySQL-spezifischen Anweisungen.

Es sieht aus wie das Skript (wie die Zeilennummer, wo der Fehler auftritt, ist das gleiche jedes Mal) mehrere Male ausgeführt wird. Der Fehler zeigt auch, dass Sie eine Tabelle zu definieren, sind versucht, die bereits vorhanden ist, die aus dem ersten Mal in diesem Skript ausgeführt sein können. Sie können in aussehen soll, wie das Skript ausgeführt wird, um zu sehen, warum es mehrere Male ausführt werden kann.

Die SQL selbst sieht gut aus für MySQL. Es wäre nicht mit SQL Server ausgeführt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top