Est un fichier sql différent pour MySQL et SQL?
-
19-09-2019 - |
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, textetype
collationner utf8_bin NOT NULL, textetown
collationner utf8_bin NOT NULL, texteaddress
collationner utf8_bin NOT NULL, texteprice
collationner utf8_bin NOT NULL, texteinfo
collationner utf8_bin NOT NULL, textelink
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, textetype
collationner utf8_bin NOT NULL, textetown
collationner utf8_bin NOT NULL, texteaddress
collationner utf8_bin NOT NULL, texteprice
collationner utf8_bin NOT NULL, texteinfo
collationner utf8_bin NOT NULL, textelink
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, textetype
collationner utf8_bin NOT NULL, textetown
collationner utf8_bin NOT NULL, texteaddress
collationner utf8_bin NOT NULL, texteprice
collationner utf8_bin NOT NULL, texteinfo
collationner utf8_bin NOT NULL, textelink
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, textetype
collationner utf8_bin NOT NULL, textetown
collationner utf8_bin NOT NULL, texteaddress
collationner utf8_bin NOT NULL, texteprice
collationner utf8_bin NOT NULL, texteinfo
collationner utf8_bin NOT NULL, textelink
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 . . .
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:
-
Modifiez le SQL à ceci:
CREATE TABLE IF NOT EXISTS ads ( id bigint(20) ...
-
Modifiez le SQL à ceci:
DROP TABLE IF EXISTS ads; CREATE TABLE ads (id bigint(20) ...
-
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.