Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql InnoDb如何创建外键_Mysql_Sql_Foreign Keys_Innodb_Foreign Key Relationship - Fatal编程技术网

Mysql InnoDb如何创建外键

Mysql InnoDb如何创建外键,mysql,sql,foreign-keys,innodb,foreign-key-relationship,Mysql,Sql,Foreign Keys,Innodb,Foreign Key Relationship,我有一个表articles,我想创建另一个表summaries,它是articles表的子表 我使用了下面的sql来创建摘要表,但是mysql不断抛出一个错误#1072-表中不存在关键列“article_id” CREATE TABLE summaries( summary_id INT NOT NULL AUTO_INCREMENT, summary TEXT, PRIMARY KEY ( summary_id), FOREIGN KEY (article_id) REFERENCES art

我有一个表articles,我想创建另一个表summaries,它是articles表的子表

我使用了下面的sql来创建摘要表,但是mysql不断抛出一个错误#1072-表中不存在关键列“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;

您的表
摘要中没有
文章id
,您的意思可能是:

   FOREIGN KEY (summary_id) REFERENCES articles(article_id)
如果要将
摘要\u id
作为articles表中article\u id的外键

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

编辑:

或者在summaries表中创建列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;
编辑:


我没有测试它。

但是我在文章表中有一个文章id,我希望摘要表属于文章表。是的,你有,但你在摘要表中没有文章id。我想我应该创建一个文章id,然后重复一遍。是的,在摘要中创建一列文章idtable@Mutuma检查我的编辑。确保您将创建的aritcle_id与articles表中的article_id具有相同的结构
 INSERT INTO `summaries` (summary,article_id)
 VALUES ($yoursummryVar , (SELECT article_id 
 FROM articles
  WHERE ........)
 )