InnoDb如何创建外键

时间:2014-03-21 12:09:25

标签: mysql sql foreign-keys innodb foreign-key-relationship

我有一个表文章,我想创建另一个表摘要,这是一个文章表的子项。

我使用以下sql创建摘要表,但是mysql不断抛出错误#1072 - Key列' article_id'表

中不存在
CREATE TABLE summaries(
summary_id INT NOT NULL AUTO_INCREMENT,
summary TEXT,
PRIMARY KEY ( summary_id),
FOREIGN KEY (article_id) REFERENCES articles(article_id)
)ENGINE=INNODB;

1 个答案:

答案 0 :(得分:1)

你的article_id表中没有summaries,你的意思是:

   FOREIGN KEY (summary_id) REFERENCES articles(article_id)

如果你想让make summary_id作为article表中article_id的外键。

但请确保它们具有相同的结构属性。

编辑:

或在摘要表中创建一个列article_id并将其设为外键

  CREATE TABLE summaries(
  summary_id INT NOT NULL AUTO_INCREMENT,
  summary TEXT,
  article_id INT,
  PRIMARY KEY ( summary_id),
  FOREIGN KEY (article_id) REFERENCES articles(article_id)
  )ENGINE=INNODB;

编辑:

 INSERT INTO `summaries` (summary,article_id)
 VALUES ($yoursummryVar , (SELECT article_id 
 FROM articles
  WHERE ........)
 )

我没有测试它。