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 (   bigint id (20) NOT NULL AUTO_INCREMENT,   int city_id (11) NOT NULL,   texto type cotejar utf8_bin NOT NULL,   texto town cotejar utf8_bin NOT NULL,   texto address cotejar utf8_bin NOT NULL,   texto price cotejar utf8_bin NOT NULL,   texto info cotejar utf8_bin NOT NULL,   texto link cotejar utf8_bin NOT NULL,   int hasImage (11) NOT NULL,   varchar language (2) cotejar utf8_bin NOT NULL,   varchar time_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 (   bigint id (20) NOT NULL AUTO_INCREMENT,   int city_id (11) NOT NULL,   texto type cotejar utf8_bin NOT NULL,   texto town cotejar utf8_bin NOT NULL,   texto address cotejar utf8_bin NOT NULL,   texto price cotejar utf8_bin NOT NULL,   texto info cotejar utf8_bin NOT NULL,   texto link cotejar utf8_bin NOT NULL,   int hasImage (11) NOT NULL,   varchar language (2) cotejar utf8_bin NOT NULL,   varchar time_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 (   bigint id (20) NOT NULL AUTO_INCREMENT,   int city_id (11) NOT NULL,   texto type cotejar utf8_bin NOT NULL,   texto town cotejar utf8_bin NOT NULL,   texto address cotejar utf8_bin NOT NULL,   texto price cotejar utf8_bin NOT NULL,   texto info cotejar utf8_bin NOT NULL,   texto link cotejar utf8_bin NOT NULL,   int hasImage (11) NOT NULL,   varchar language (2) cotejar utf8_bin NOT NULL,   varchar time_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 (   bigint id (20) NOT NULL AUTO_INCREMENT,   int city_id (11) NOT NULL,   texto type cotejar utf8_bin NOT NULL,   texto town cotejar utf8_bin NOT NULL,   texto address cotejar utf8_bin NOT NULL,   texto price cotejar utf8_bin NOT NULL,   texto info cotejar utf8_bin NOT NULL,   texto link cotejar utf8_bin NOT NULL,   int hasImage (11) NOT NULL,   varchar language (2) cotejar utf8_bin NOT NULL,   varchar time_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   .   .   .

¿Fue útil?

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:

  1. Cambiar el SQL para esto:

    CREATE TABLE IF NOT EXISTS ads ( id bigint(20) ...
    
  2. Cambiar el SQL para esto:

    DROP TABLE IF EXISTS ads;
    CREATE TABLE ads (id bigint(20) ...
    
  3. 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top