0

这是我的 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 

这具体是什么意思?我该怎么办?从我的角度来看,脚本很好,我只是无法指出错误在哪里

4

3 回答 3

3

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

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

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

于 2012-06-28T07:53:23.173 回答
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 行附近。

于 2012-06-28T08:00:57.773 回答
2

可能您的表account不存在:

FOREIGN KEY (accnt_id) REFERENCES accounts(id)

这就是为什么你有一个错误,否则请求是正确的。

于 2012-06-28T07:49:30.180 回答