1

我有这张桌子:

mysql> CREATE TABLE favorite food
-> (person_id SMALLINT UNSIGNED,
->food VARCHAR(20),
->CONSTRAINT pk_favorite_food PRIMARY KEY (person_id, food),
->CONSTRAINT fk_fav_food_person_id FOREIGN KEY (person_id)
->REFERENCES person (person_id)
->);

执行后我得到错误 1064。任何人有什么想法可能是错的吗?

MySQL 服务器 6.0

4

2 回答 2

3

表名中不应有空格。让它像favorite_food

于 2013-08-23T20:15:15.197 回答
1

通过在 Google 上搜索一些可能的响应,我在 SO 上找到了这个线程......原始表(与您的相同,但格式更好)是:

CREATE TABLE favorite_food(
    person_id SMALLINT UNSIGNED,
    food VARCHAR(20),
    CONSTRAINT pk_favorite_food PRIMARY KEY(person_id,food),
    CONSTRAINT fk_fav_food_person_id FOREIGN KEY (person_id) REFERENCES person(person_id)
);
  1. 您可能没有person表,因此无法创建外键。(见最后一行)
  2. 您已删除不允许_的表名(favorite food而不是)中的 。favorite_food
于 2013-08-23T20:15:13.713 回答