MySQL语法错误

时间:2012-06-28 07:42:23

标签: mysql sql phpmyadmin

这是我的SQL脚本

CREATE TABLE account_profile
(
accnt_id int NOT NULL ,
first_name varchar(255),
last_name varchar(255),
biography varchar(255),
date_joined DATE,
country varchar(255),
gender varchar(255),
screename varchar(255),
path varchar(255),
FOREIGN KEY (accnt_id) REFERENCES accounts(id)
)

它一直给我这个错误 SQL查询:

CREATE TABLE ac
MySQL说:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 

这具体意味着什么?我该怎么办?从我的观点来看,脚本非常好,我只是无法确定错误的位置

3 个答案:

答案 0 :(得分:3)

确保您使用的是InnoDB引擎。其他引擎不支持外键。

CREATE TABLE account_profile
(
...
) ENGINE = INNODB;

同时检查列account_profile.accnt_id是否与accounts.id的数据类型完全匹配。第二列应该在其上定义一个索引(主键就可以了。)

答案 1 :(得分:3)

我已经测试了您的查询,它也适用于我。在创建表account_profile之前是否有查询?因为如果你这样做,请尝试 检查之前的查询是否已被分号终止 。像这样:

Create table TableName
(
    -- fields list
);  -- <== don't forget this before creating another table again.

CREATE TABLE account_profile
(
    accnt_id int NOT NULL ,
    first_name varchar(255),
    last_name varchar(255),
    biography varchar(255),
    date_joined DATE,
    country varchar(255),
    gender varchar(255),
    screename varchar(255),
    path varchar(255),
    FOREIGN KEY (accnt_id) REFERENCES accounts(id)
);  -- <== and also this.

错误在第1行附近说。

答案 2 :(得分:2)

您的表格account可能不存在:

FOREIGN KEY (accnt_id) REFERENCES accounts(id)

这就是你遇到错误的原因,否则请求是正确的。