Question

J'ai un fichier sql et je veux le charger dans la base de données MySQL. Je ne sais pas de quelle base de données (MySQL ou MS-SQL) il a été créé.

Maintenant, je suis en train d'importer ce fichier dans la base de données MySQL. Il montre des erreurs lors de l'importation et l'exécution de ce fichier.

  

Q1. Donc, ma question est de savoir si le fichier sql généré à partir de MySQL et MS-SQL sont différentes?

Note:. J'utilise le logiciel SQLYog (interface graphique pour MySQL) pour importer le fichier

Voici l'erreur:

  

Requête:   CREATE TABLE ads (   id bigint (20) auto_increment NOT NULL,   city_id int (11) NOT NULL,   texte type collationner utf8_bin NOT NULL,   texte town collationner utf8_bin NOT NULL,   texte address collationner utf8_bin NOT NULL,   texte price collationner utf8_bin NOT NULL,   texte info collationner utf8_bin NOT NULL,   texte link collationner utf8_bin NOT NULL,   hasImage int (11) NOT NULL,   language varchar (2) collationner utf8_bin NOT NULL,   time_added varchar (255) collationner NOT NULL utf8_bin,   Clé primaire (id)   ) MOTEUR = InnoDB DEFAULT CHARSET = UTF-8 ASSEMBLER = utf8_bin AUTO_INCREMENT = 1

Une erreur est survenue à: 2009-09-08 17:41:01 ligne no.:35 Code d'erreur: 1050 - Table 'annonces' existe déjà

  

Requête:   CREATE TABLE ads (   id bigint (20) auto_increment NOT NULL,   city_id int (11) NOT NULL,   texte type collationner utf8_bin NOT NULL,   texte town collationner utf8_bin NOT NULL,   texte address collationner utf8_bin NOT NULL,   texte price collationner utf8_bin NOT NULL,   texte info collationner utf8_bin NOT NULL,   texte link collationner utf8_bin NOT NULL,   hasImage int (11) NOT NULL,   language varchar (2) collationner utf8_bin NOT NULL,   time_added varchar (255) collationner NOT NULL utf8_bin,   Clé primaire (id)   ) MOTEUR = InnoDB DEFAULT CHARSET = UTF-8 ASSEMBLER = utf8_bin AUTO_INCREMENT = 1

Une erreur est survenue à: 2009-09-08 17:41:21 ligne no.:35 Code d'erreur: 1050 - Table 'annonces' existe déjà

  

Requête:   CREATE TABLE ads (   id bigint (20) auto_increment NOT NULL,   city_id int (11) NOT NULL,   texte type collationner utf8_bin NOT NULL,   texte town collationner utf8_bin NOT NULL,   texte address collationner utf8_bin NOT NULL,   texte price collationner utf8_bin NOT NULL,   texte info collationner utf8_bin NOT NULL,   texte link collationner utf8_bin NOT NULL,   hasImage int (11) NOT NULL,   language varchar (2) collationner utf8_bin NOT NULL,   time_added varchar (255) collationner NOT NULL utf8_bin,   Clé primaire (id)   ) MOTEUR = InnoDB DEFAULT CHARSET = UTF-8 ASSEMBLER = utf8_bin AUTO_INCREMENT = 1

Une erreur est survenue à: 2009-09-08 17:41:35 ligne no.:35 Code d'erreur: 1050 - Table 'annonces' existe déjà

  

Requête:   CREATE TABLE ads (   id bigint (20) auto_increment NOT NULL,   city_id int (11) NOT NULL,   texte type collationner utf8_bin NOT NULL,   texte town collationner utf8_bin NOT NULL,   texte address collationner utf8_bin NOT NULL,   texte price collationner utf8_bin NOT NULL,   texte info collationner utf8_bin NOT NULL,   texte link collationner utf8_bin NOT NULL,   hasImage int (11) NOT NULL,   language varchar (2) collationner utf8_bin NOT NULL,   time_added varchar (255) collationner NOT NULL utf8_bin,   Clé primaire (id)   ) MOTEUR = InnoDB DEFAULT CHARSET = UTF-8 ASSEMBLER = utf8_bin AUTO_INCREMENT = 1

Une erreur est survenue à: 2009-09-08 17:42:07 ligne no.:35 Code d'erreur: 1050 - Table 'annonces' existe déjà

  

Requête:   1 Université Stanford 6700 http://www.orkut.co.in   .   .   .

Était-ce utile?

La solution

L'extension du fichier « sql » est essentiellement dépourvue de sens: il est juste là pour que savoir ce que le fichier est. Ce sera juste un fichier texte contenant SQL, que vous pouvez ouvrir dans le Bloc-notes. Par conséquent, il n'y a pas d'extensions spéciales "mysql" ou "sql server".

Les erreurs que vous obtenez là "Table 'ads' already exists" sont parce que vous essayez de créer une table qui existe déjà dans la base de données. (Avez-vous lu l'erreur?) Vous avez quelques options:

  1. Modifiez le SQL à ceci:

    CREATE TABLE IF NOT EXISTS ads ( id bigint(20) ...
    
  2. Modifiez le SQL à ceci:

    DROP TABLE IF EXISTS ads;
    CREATE TABLE ads (id bigint(20) ...
    
  3. Effacer toutes les tables de la DB première.

Autres conseils

MySQL et Microsoft SQL Server ne, malheureusement, mettre en œuvre les différents dialectes de SQL. Donc, la réponse à votre question:

  

Q1. Donc, ma question est de savoir si la   fichier sql généré à partir de MySQL et   MS-SQL sont différentes?

est "oui, tout à fait possiby". Cependant, l'erreur spécifique que vous montrant semble être dû strictement à une « Créer la table » déclaration sur la ligne 35 en cours d'exécution à plusieurs reprises et encore, et qui ne peut dépendre de ces différences dialectales, de sorte que les causes doivent être autres (tels que des bugs ou des différences de format subtiles dans ce qui programme « SQLYog », que je ne suis pas au courant, attend que son entrée).

Il dépend du logiciel exporté ce fichier. Jetez également dans l'en-tête du fichier dont le logiciel a fait et analyser la syntaxe pour déterminer où ce fichier appartient. Notez également que SQL est Microsoft SQL Server.

Oui. SQL varie considérablement d'une base de données à base de données. Bien qu'il y ait un standard SQL que la plupart des bases de données prennent en charge une grande partie de, chaque base de données a de nombreux, caractéristiques atypiques incompatibles et fonctions ci-dessus et au-delà de celui qui est spécifié par la norme.

Il y a aussi de nombreux documents de migration avaiable:

MSSQL => MySQL: http://dev.mysql.com/tech-resources/ articles / migration-de-microsoft.html

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

Il y a deux choses évidentes dans votre instruction CREATE TABLE que MSSQL ne prend pas en charge qui saute immédiatement:

ENGINE=InnoDB
AUTO_INCREMENT=1

Ce sont les deux déclarations spécifiques à MySQL.

Il semble que votre script est en cours d'exécution à plusieurs reprises (comme le numéro de ligne où l'erreur se produit est le même à chaque fois). L'erreur indique également que vous essayez de définir une table qui existe déjà, qui peut être de la première fois que ce script a couru. Vous pouvez regarder la façon dont le script est en cours d'exécution pour voir pourquoi il peut être en cours d'exécution à plusieurs reprises.

Le SQL lui-même semble bien pour MySQL. Il ne fonctionne pas avec SQL Server.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top