MySQL语法错误

MySQL语法错误,mysql,sql,phpmyadmin,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

这是我的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 
这具体意味着什么?我该怎么办?从我的角度来看,脚本是很好的,我只是无法确定错误在哪里

可能您的表帐户不存在:

FOREIGN KEY (accnt_id) REFERENCES accounts(id)

这就是您出错的原因,否则请求是正确的。

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

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

还要检查列account\u profile.accnt\u id是否与accounts.id的数据类型完全匹配。第二列应该有一个定义了主键的索引。

我已经测试了您的查询,它也可以使用。在创建表account\u配置文件之前是否有查询?因为如果是这样,请尝试检查之前的查询是否已被分号终止。像这样:

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行附近。

您的代码是正确的,可能是因为您的accounts表不存在。您是单独运行此代码还是在此之前与其他代码一起运行?我猜你可能遗漏了前一行中的某些内容,例如:;我已检查查询,其工作正常,并且我也没有accounts表。这用phpMyAdmin标记,如果您正在使用该工具,它将有助于运行show errors命令: