繁体   English   中英

导入SQL数据库时出错

[英]ERROR importing sql database

我是sql数据库的初学者。 我正在尝试将数据库导入phpmyadmin,但出现错误消息:

1064-您的SQL语法有误; 检查与您的MySQL服务器版本相对应的手册,以在第2行的'DEFAULT_AUTOINCREMENT,firstName varchar(30)NOT_NULL,lastName var'附近使用正确的语法

我的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)
) 
;

有人能指出我正确的方向吗,我要去哪里错了。 谢谢。

您的代码存在一些问题。 您必须改用正确的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)
) 
;

尝试将所有DEFAULT_AUTOINCREMENT更改为AUTO_INCREMENT ,将所有NOT_NULLNOT NULL ,将primary_key更改primary key ,将foreign_key更改为foreign key

通常是因为代码与MySQL支持的语法不匹配。

我不是php方面的专家,但我也遇到这种问题。 我所做的是:1.使用phpmyadmin导出表。 2.将导出的表复制到c:\\ xampp \\ mysql \\ bin目录中3.转到命令提示符并键入4. cd \\ 5. cd 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.

我希望它可以帮助您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM