Mysql InnoDb如何创建外键
我有一个表articles,我想创建另一个表summaries,它是articles表的子表 我使用了下面的sql来创建摘要表,但是mysql不断抛出一个错误#1072-表中不存在关键列“article_id”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
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 ........)
)