Es el archivo .sql diferente para MySQL y SQL?
-
19-09-2019 - |
Pregunta
Tengo un archivo .sql y quiero cargarlo en la base de datos MySQL. No sé a partir del cual la base de datos (MySQL o MS-SQL) que fue creada.
Ahora, estoy tratando de importar ese archivo en la base de datos MySQL. Está mostrando errores al importar y ejecutar ese archivo.
Q1. Por lo tanto, mi pregunta es si el archivo .sql generado a partir de MySQL y MS-SQL son diferentes?
Nota:. Estoy utilizando el software SQLyog (interfaz gráfica para MySQL) para importar el archivo
Aquí está el error:
Consulta: CREAR TABLA
ads
( bigintid
(20) NOT NULL AUTO_INCREMENT, intcity_id
(11) NOT NULL, textotype
cotejar utf8_bin NOT NULL, textotown
cotejar utf8_bin NOT NULL, textoaddress
cotejar utf8_bin NOT NULL, textoprice
cotejar utf8_bin NOT NULL, textoinfo
cotejar utf8_bin NOT NULL, textolink
cotejar utf8_bin NOT NULL, inthasImage
(11) NOT NULL, varcharlanguage
(2) cotejar utf8_bin NOT NULL, varchartime_added
(255) cotejar utf8_bin NOT NULL, PRIMARY KEY (id
) ) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin AUTO_INCREMENT = 1
Se produjo un error en: 2009-09-08 17:41:01 no.:35 line Código de error: 1050 - 'anuncios' tabla ya existe
Consulta: CREAR TABLA
ads
( bigintid
(20) NOT NULL AUTO_INCREMENT, intcity_id
(11) NOT NULL, textotype
cotejar utf8_bin NOT NULL, textotown
cotejar utf8_bin NOT NULL, textoaddress
cotejar utf8_bin NOT NULL, textoprice
cotejar utf8_bin NOT NULL, textoinfo
cotejar utf8_bin NOT NULL, textolink
cotejar utf8_bin NOT NULL, inthasImage
(11) NOT NULL, varcharlanguage
(2) cotejar utf8_bin NOT NULL, varchartime_added
(255) cotejar utf8_bin NOT NULL, PRIMARY KEY (id
) ) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin AUTO_INCREMENT = 1
Se produjo un error en: 2009-09-08 17:41:21 no.:35 line Código de error: 1050 - 'anuncios' tabla ya existe
Consulta: CREAR TABLA
ads
( bigintid
(20) NOT NULL AUTO_INCREMENT, intcity_id
(11) NOT NULL, textotype
cotejar utf8_bin NOT NULL, textotown
cotejar utf8_bin NOT NULL, textoaddress
cotejar utf8_bin NOT NULL, textoprice
cotejar utf8_bin NOT NULL, textoinfo
cotejar utf8_bin NOT NULL, textolink
cotejar utf8_bin NOT NULL, inthasImage
(11) NOT NULL, varcharlanguage
(2) cotejar utf8_bin NOT NULL, varchartime_added
(255) cotejar utf8_bin NOT NULL, PRIMARY KEY (id
) ) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin AUTO_INCREMENT = 1
Se produjo un error en: 2009-09-08 17:41:35 no.:35 line Código de error: 1050 - 'anuncios' tabla ya existe
Consulta: CREAR TABLA
ads
( bigintid
(20) NOT NULL AUTO_INCREMENT, intcity_id
(11) NOT NULL, textotype
cotejar utf8_bin NOT NULL, textotown
cotejar utf8_bin NOT NULL, textoaddress
cotejar utf8_bin NOT NULL, textoprice
cotejar utf8_bin NOT NULL, textoinfo
cotejar utf8_bin NOT NULL, textolink
cotejar utf8_bin NOT NULL, inthasImage
(11) NOT NULL, varcharlanguage
(2) cotejar utf8_bin NOT NULL, varchartime_added
(255) cotejar utf8_bin NOT NULL, PRIMARY KEY (id
) ) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin AUTO_INCREMENT = 1
Se produjo un error en: 2009-09-08 17:42:07 no.:35 line Código de error: 1050 - 'anuncios' tabla ya existe
Consulta: 1 Universidad de Stanford 6700 http://www.orkut.co.in . . .
Solución
La extensión de archivo ".sql" es esencialmente de significado: es sólo allí para que saben qué es el fichero. Sólo será un SQL archivo de texto que contiene llanura, que se puede abrir en el Bloc de notas. Por lo tanto, no hay "mysql" especiales "o extensiones de servidor SQL".
Los errores que está recibiendo no son "Table 'ads' already exists"
porque usted está tratando de crear una tabla que ya existe en la base de datos. (¿Ha leído el error?) Usted tiene algunas opciones:
-
Cambiar el SQL para esto:
CREATE TABLE IF NOT EXISTS ads ( id bigint(20) ...
-
Cambiar el SQL para esto:
DROP TABLE IF EXISTS ads; CREATE TABLE ads (id bigint(20) ...
-
Borrar todas las tablas de la base de datos en primer lugar.
Otros consejos
MySQL y Microsoft SQL Server otra cosa, por desgracia, implementar diferentes dialectos de SQL. Por lo tanto, la respuesta a su pregunta:
Q1. Por lo tanto, mi pregunta es si el archivo .sql genera a partir de MySQL y MS-SQL son diferentes?
es "sí, bastante possiby". Sin embargo, el error específico que está mostrando parece ser debido estrictamente a una "Crear una tabla" declaración en la línea 35 que se está ejecutando una y otra y otra vez, y que no puede depender de tales diferencias dialectales, por lo que las causas tienen que ser otros (tales como errores o diferencias de formato sutiles en lo que el programa "SQLyog", que no estoy familiarizado con, espera como su entrada).
Depende de qué software exporta este archivo. También puedes ver en el encabezado del archivo de software, que lo hizo y analizar la sintaxis para determinar dónde pertenece este archivo. Tenga en cuenta también que SQL es el servidor Microsoft SQL.
Sí. SQL varía enormemente de base de datos para la base de datos. Si bien existe una estándar SQL, que la mayoría de las bases de datos soportan la mayor parte, cada base de datos tiene numerosos, características no estándar incompatibles y funciones anteriores y más allá de la especificada por la norma.
También hay muchos documentos de migración disponibles:
MSSQL => MySQL: http://dev.mysql.com/tech-resources/ artículos / migración-de-microsoft.html
MySQL => MSSQL: http://technet.microsoft.com/en-us/library/cc966396. aspx
Hay dos cosas obvias en su sentencia CREATE TABLE que MSSQL no soporta la que saltan inmediatamente:
ENGINE=InnoDB
AUTO_INCREMENT=1
Estas son las dos afirmaciones específicas de MySQL.
Parece que el guión está siendo ejecutado varias veces (como el número de línea donde se produce el error es el mismo cada vez). El error también indica que usted está tratando de definir una tabla que ya existe, que puede ser desde la primera vez que este guión corrió. Es posible que desee ver en la forma en que se ejecuta la secuencia de comandos para ver qué se puede ejecutar varias veces.
El SQL en sí se ve bien para MySQL. No se ejecutaría con SQL Server.