简体   繁体   English

InnoDb如何创建外键

[英]InnoDb how to create a foreign key

I have a table articles and I want to create another table summaries that is a child of articles table. 我有一个表articles ,我想创建另一个表summary ,它是articles表的子级。

I've used the following sql to create summaries table but however mysql keeps throwing an error #1072 - Key column 'article_id' doesn't exist in table 我已使用以下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;

you dont have article_id in your table summaries , you may mean this: 您的表summaries没有article_id ,您可能意味着:

   FOREIGN KEY (summary_id) REFERENCES articles(article_id)

if you want make summary_id as foreign key to article_id in articles table. 如果要使summary_id作为articles表中article_id的外键。

But make sure they have same structure properties. 但是请确保它们具有相同的结构属性。

EDIT: 编辑:

or create a column article_id in summaries table and make it foreign key 或在摘要表中创建一列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;

EDIt: 编辑:

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

i didnt test it. 我没有测试。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM