Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Executar um script para criar DataBase - Eroo de syntax


Joseh

Question

Tenho este código:

CREATE DATABASE IF NOT EXISTS books;

USE books;

DROP TABLE IF EXISTS authorISBN;
DROP TABLE IF EXISTS titles;
DROP TABLE IF EXISTS authors;
DROP TABLE IF EXISTS publishers;

CREATE TABLE publishers (
    publisherID INT NOT NULL AUTO_INCREMENT,
    publisherName varchar (30) NOT NULL,
    PRIMARY KEY (publisherID)
) TYPE=INNODB
;

CREATE TABLE authors (
    authorID INT NOT NULL AUTO_INCREMENT,
    firstName varchar (20) NOT NULL,
    lastName varchar (30) NOT NULL,
    PRIMARY KEY (authorID)
) TYPE=INNODB
;

CREATE TABLE titles (
    isbn varchar (20) NOT NULL,
    title varchar (100) NOT NULL,
    editionNumber INT NOT NULL,
    copyright varchar (4) NOT NULL,
    publisherID INT NOT NULL,
    imageFile varchar (20) NOT NULL,
    price REAL NOT NULL,
    PRIMARY KEY (isbn),
    INDEX (publisherID),
    FOREIGN KEY (publisherID) REFERENCES publishers(publisherID)
) TYPE=INNODB
;
CREATE TABLE authorISBN (
    authorID INT NOT NULL,
    isbn varchar (20) NOT NULL,
    INDEX (authorID),
    FOREIGN KEY (authorID) REFERENCES authors (authorID), 
    INDEX (isbn),
    FOREIGN KEY (isbn) REFERENCES titles (isbn)
) TYPE=INNODB
;

Tentei executá-lo assim:

C:\arquivos de programas\mysql\MySQL Sever 5.5\bin>mysql -u root -p

Enter password: *********

mysql> source books.sql

Deu esse erro:

ERROR 1064 (4200):you have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for right syntax to use near 'TYPE=INNODB'at line 6

você tem um erro em sua sintaxe SQL; verifique o manual que correspondente à sua versão do servidor MySQL para a sintaxe direita ao uso próximo "TYPE = INNODB'at linha 6

O scritp é originário do MySql 4.0 e eu quero executá-lo no MySql 5.5;

O que está errado?

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0
Tenho este código:

CREATE DATABASE IF NOT EXISTS books;
...
CREATE TABLE publishers (
    publisherID INT NOT NULL AUTO_INCREMENT,
    publisherName varchar (30) NOT NULL,
    PRIMARY KEY (publisherID)
) TYPE=INNODB;
...

Tentei executá-lo assim:

C:\arquivos de programas\mysql\MySQL Sever 5.5\bin>mysql -u root -p

Enter password: *********

mysql> source books.sql

Deu esse erro:

ERROR 1064 (4200):you have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for right syntax to use near 'TYPE=INNODB'at line 6

você tem um erro em sua sintaxe SQL; verifique o manual que correspondente à sua versão do servidor MySQL para a sintaxe direita ao uso próximo "TYPE = INNODB'at linha 6

O scritp é originário do MySql 4.0 e eu quero executá-lo no MySql 5.5;

O que está errado?

TYPE foi a palavra chave para determinar a engine de uma tabela até a versão 4.1.

A partir da versão 5.x passou-se a usar a palavra ENGINE.

Substitua as palavras TYPE por ENGINE em seu script e execute novamente.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...