这是我的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
这具体意味着什么?我该怎么办?从我的观点来看,脚本非常好,我只是无法确定错误的位置
答案 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)
这就是你遇到错误的原因,否则请求是正确的。