【问题标题】:InnoDb how to create a foreign keyInnoDb 如何创建外键
【发布时间】:2014-03-21 12:09:25
【问题描述】:

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

我使用以下 sql 创建汇总表,但是 mysql 一直抛出错误 #1072 - Key column 'article_id' doesn't exist in table

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;

【问题讨论】:

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


    【解决方案1】:

    你的表中没有article_id summaries,你可能是这个意思:

       FOREIGN KEY (summary_id) REFERENCES articles(article_id)
    

    如果您想将summary_id 设为articles 表中article_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;
    

    编辑:

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

    我没有测试它。

    【讨论】:

    • 但我确实在文章表中有一个 article_id,我希望摘要表属于文章表
    • 是的,你有这个,但你在摘要表中没有 article_id
    • 所以我想我应该创建一个 article_id 并重复一遍
    • 是的,在summaries表中创建列article_id
    • @Mutuma 检查我的编辑。确保您将创建的 aritcle_id 与文章表中的 article_id 具有相同的结构
    猜你喜欢
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 2015-05-12
    • 1970-01-01
    相关资源
    最近更新 更多