2013-11-13 3 views
0

Я начинаю с базами данных sql. Я пытаюсь импортировать базу данных в phpmyadmin, и я получаю сообщение об ошибке:ERROR импортирует базу данных sql

1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для корректного синтаксиса использовать вблизи «DEFAULT_AUTOINCREMENT, ПгвЬЫат VARCHAR (30) NOT_NULL, LastName вара» в строке 2

моего SQL код выглядит следующим образом:

use myAddressBook 
; 

create table names (
    personID int DEFAULT_AUTOINCREMENT, 
    firstName varchar (30) NOT_NULL, 
    lastName varchar (30) NOT_NULL, 
    constraint pk_name primary_key (personID) 
) 
; 
create table addresses (
    addressID int DEFAULT_AUTOINCREMENT, 
     personID int NOT_NULL, 
    address1 varchar (50), 
    address2 varchar (50), 
    city varchar (30), 
    state varchar (2), 
    zipcode varchar (10), 
    constraint fk_addresses foreign_key (personID) 
     references names (personID), 
    constraint pk_addresses primary_key (addressID) 
) 
; 
create table phoneNumbers (
    phoneID int DEFAULT_AUTOINCREMENT, 
     personID int NOT_NULL, 
    phoneNumber varchar (20), 
    constraint fk_phoneNumbers foreign_key (personID) 
     references names (personID), 
    constraint pk_phoneNumbers primary_key (phoneID) 
) 
; 
create table emailAddresses (
    emailID int DEFAULT_AUTOINCREMENT, 
     personID int NOT_NULL, 
    emailAddress varchar (50), 
    constraint fk_emailAddresses foreign_key (personID) 
     references names (personID), 
    constraint pk_emailAddresses primary_key (emailID) 
) 
; 

Может ли кто-нибудь указать мне в правильном направлении, где я ошибаюсь. Спасибо.

ответ

1

Попробуйте изменить все DEFAULT_AUTOINCREMENT к AUTO_INCREMENT и все NOT_NULL к NOT NULL и primary_key к primary key и foreign_key к foreign key

В целом это потому, что код не совпадает с синтаксисом, поддерживаемый MySQL.

+0

Работали как очарование. Спасибо – Saint

+0

должны подождать еще 5 минут, чтобы это сделать :) – Saint

2

Есть некоторые проблемы с кодом. Вы должны использовать правильный MySQL ключевые слова вместо:

 Wrong   |  Correct 
========================================= 
DEFAULT_AUTOINCREMENT ===> AUTO_INCREMENT 
NOT_NULL    ===> NOT NULL 
FOREIGN_KEY   ===> FOREIGN KEY 
PRIMARY_KEY   ===> PRIMARY KEY 

Это должно быть так:

USE myAddressBook 
; 

CREATE TABLE NAMES (
    personID INT AUTO_INCREMENT, 
    firstName VARCHAR (30) NOT NULL, 
    lastName VARCHAR (30) NOT NULL, 
    CONSTRAINT pk_name PRIMARY KEY (personID) 
) 
; 
CREATE TABLE addresses (
    addressID INT AUTO_INCREMENT, 
     personID INT NOT NULL, 
    address1 VARCHAR (50), 
    address2 VARCHAR (50), 
    city VARCHAR (30), 
    state VARCHAR (2), 
    zipcode VARCHAR (10), 
    CONSTRAINT fk_addresses FOREIGN KEY (personID) 
     REFERENCES NAMES (personID), 
    CONSTRAINT pk_addresses PRIMARY KEY (addressID) 
) 
; 
CREATE TABLE phoneNumbers (
    phoneID INT AUTO_INCREMENT, 
     personID INT NOT NULL, 
    phoneNumber VARCHAR (20), 
    CONSTRAINT fk_phoneNumbers FOREIGN KEY (personID) 
     REFERENCES NAMES (personID), 
    CONSTRAINT pk_phoneNumbers PRIMARY KEY (phoneID) 
) 
; 
CREATE TABLE emailAddresses (
    emailID INT AUTO_INCREMENT, 
     personID INT NOT NULL, 
    emailAddress VARCHAR (50), 
    CONSTRAINT fk_emailAddresses FOREIGN KEY (personID) 
     REFERENCES NAMES (personID), 
    CONSTRAINT pk_emailAddresses PRIMARY KEY (emailID) 
) 
; 
+0

Отсортировано, но спасибо. – Saint

0

Я не являюсь экспертом в PHP, но я также опыт такого рода проблемы. что я сделал: 1. экспортируйте таблицы с помощью phpmyadmin. 2. копия экспортируемые таблицы внутри C: \ XAMPP \ MySQL \ Bin КАТАЛОГ 3. Перейдите к командной строки и введите 4. кд \ 5. кд C: \ XAMPP \ MySQL \ Bin 6. выполнить этот простой команда
MySQL -u -p корень newdatabase < names.sql

 note : newdatabase is DATABASE_NAME 
       names.sql is table.sql that you exported from your database. 

я надеюсь, что это может помочь вам.

Смежные вопросы