Domanda

Ho un file sql e voglio caricarlo nel database MySQL. Non so da quale database (MySQL o MS-SQL) è stato creato.

Ora, sto cercando di importare il file in database MySQL. Si sta mostrando errori durante l'importazione e l'esecuzione di quel file.

  

Q1. Quindi, la mia domanda è se il file sql generato da MySQL e MS-SQL sono diversi?

Nota:. Sto usando il software SQLyog (interfaccia grafica per MySQL) per l'importazione del file

Qui è l'errore:

  

Query:   CREATE TABLE ads (   id bigint (20) auto_increment NOT NULL,   city_id int (11) NOT NULL,   testo type fascicolazione utf8_bin NOT NULL,   testo town fascicolazione utf8_bin NOT NULL,   testo address fascicolazione utf8_bin NOT NULL,   testo price fascicolazione utf8_bin NOT NULL,   testo info fascicolazione utf8_bin NOT NULL,   testo link fascicolazione utf8_bin NOT NULL,   hasImage int (11) NOT NULL,   language varchar (2) raccolgono utf8_bin NOT NULL,   time_added varchar (255) fascicolazione utf8_bin NOT NULL,   PRIMARY KEY (id)   ) ENGINE = InnoDB DI DEFAULT CHARSET = utf8 COLLATE = utf8_bin AUTO_INCREMENT = 1

è verificato un errore a: 2009-09-08 17:41:01 no.:35 linea Codice di errore: 1050 - Tavola 'annunci' esiste già

  

Query:   CREATE TABLE ads (   id bigint (20) auto_increment NOT NULL,   city_id int (11) NOT NULL,   testo type fascicolazione utf8_bin NOT NULL,   testo town fascicolazione utf8_bin NOT NULL,   testo address fascicolazione utf8_bin NOT NULL,   testo price fascicolazione utf8_bin NOT NULL,   testo info fascicolazione utf8_bin NOT NULL,   testo link fascicolazione utf8_bin NOT NULL,   hasImage int (11) NOT NULL,   language varchar (2) raccolgono utf8_bin NOT NULL,   time_added varchar (255) fascicolazione utf8_bin NOT NULL,   PRIMARY KEY (id)   ) ENGINE = InnoDB DI DEFAULT CHARSET = utf8 COLLATE = utf8_bin AUTO_INCREMENT = 1

è verificato un errore a: 2009-09-08 17:41:21 no.:35 linea Codice di errore: 1050 - Tavola 'annunci' esiste già

  

Query:   CREATE TABLE ads (   id bigint (20) auto_increment NOT NULL,   city_id int (11) NOT NULL,   testo type fascicolazione utf8_bin NOT NULL,   testo town fascicolazione utf8_bin NOT NULL,   testo address fascicolazione utf8_bin NOT NULL,   testo price fascicolazione utf8_bin NOT NULL,   testo info fascicolazione utf8_bin NOT NULL,   testo link fascicolazione utf8_bin NOT NULL,   hasImage int (11) NOT NULL,   language varchar (2) raccolgono utf8_bin NOT NULL,   time_added varchar (255) fascicolazione utf8_bin NOT NULL,   PRIMARY KEY (id)   ) ENGINE = InnoDB DI DEFAULT CHARSET = utf8 COLLATE = utf8_bin AUTO_INCREMENT = 1

è verificato un errore a: 2009-09-08 17:41:35 no.:35 linea Codice di errore: 1050 - Tavola 'annunci' esiste già

  

Query:   CREATE TABLE ads (   id bigint (20) auto_increment NOT NULL,   city_id int (11) NOT NULL,   testo type fascicolazione utf8_bin NOT NULL,   testo town fascicolazione utf8_bin NOT NULL,   testo address fascicolazione utf8_bin NOT NULL,   testo price fascicolazione utf8_bin NOT NULL,   testo info fascicolazione utf8_bin NOT NULL,   testo link fascicolazione utf8_bin NOT NULL,   hasImage int (11) NOT NULL,   language varchar (2) raccolgono utf8_bin NOT NULL,   time_added varchar (255) fascicolazione utf8_bin NOT NULL,   PRIMARY KEY (id)   ) ENGINE = InnoDB DI DEFAULT CHARSET = utf8 COLLATE = utf8_bin AUTO_INCREMENT = 1

è verificato un errore a: 2009-09-08 17:42:07 no.:35 linea Codice di errore: 1050 - Tavola 'annunci' esiste già

  

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

È stato utile?

Soluzione

L'estensione del file ".sql" è essenzialmente privo di significato: è proprio lì in modo che si sapere che cosa il file è. Sarà solo una pianura SQL file di testo contenente, che è possibile aprire in Blocco note. Pertanto, non ci sono particolari "mysql" o estensioni "server SQL".

Gli errori che stai ricevendo ci sono "Table 'ads' already exists" perché si sta cercando di creare una tabella che già esiste nel database. (Hai letto l'errore?) Hai alcune opzioni:

  1. Modificare il codice SQL a questo:

    CREATE TABLE IF NOT EXISTS ads ( id bigint(20) ...
    
  2. Modificare il codice SQL a questo:

    DROP TABLE IF EXISTS ads;
    CREATE TABLE ads (id bigint(20) ...
    
  3. Cancella tutte le tabelle del DB prima.

Altri suggerimenti

MySQL e Microsoft SQL Server fanno, purtroppo, implementare diversi dialetti di SQL. Quindi, la risposta alla tua domanda:

  

Q1. Quindi, la mia domanda è se il   generato dal file sql MySQL e   MS-SQL sono diversi?

è "sì, abbastanza possiby". Tuttavia, l'errore specifico si sta mostrando sembra essere dovuto rigorosamente ad una "Crea tabella" dichiarazione sulla linea 35 in esecuzione più e più e più volte, e che non può dipendere da tali differenze dialettali, così le cause devono essere altri quelli (come gli insetti o le differenze di formato sottili cosa quel programma "SQLyog", che io non sono a conoscenza, si aspetta come input).

Dipende da quale software esportato il file. Controllare anche nell'intestazione del file che il software ha fatto e analizzare la sintassi per determinare dove il file appartiene. Si noti inoltre che SQL è Microsoft SQL server.

Sì. SQL varia notevolmente da database a database. Mentre v'è una standard SQL, che la maggior parte dei database supportano gran parte, ogni database ha numerosi, incompatibili caratteristiche non standard e funzioni che vanno oltre quello specificato dallo standard.

Ci sono anche molti documenti di migrazione avaiable:

MSSQL => MySQL: http://dev.mysql.com/tech-resources/ articoli / migrazione-da-microsoft.html

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

Ci sono due cose ovvie nell'istruzione CREATE TABLE che MSSQL non supporta che salta fuori subito:

ENGINE=InnoDB
AUTO_INCREMENT=1

Queste sono entrambe le istruzioni MySQL-specifici.

Sembra che lo script viene eseguito più volte (come il numero di riga in cui l'errore si verifica è la stessa ogni volta). L'errore indica anche che si sta cercando di definire una tabella già esistente, che può essere sin dalla prima volta questo script ha funzionato. Si consiglia di guardare in che modo lo script viene eseguito per vedere il motivo per cui potrebbe essere in esecuzione più volte.

Lo SQL stesso sembra bene per MySQL. Non sarebbe correre con SQL Server.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top