【问题标题】:Can´t INSERT values with Foreign Key in MySQL不能在 MySQL 中使用外键插入值
【发布时间】:2011-01-02 11:23:17
【问题描述】:

我有一个 MySQL(OsX 上的 5.1.42)正在运行。 我用这个 sql 语句添加了一个外键:

ALTER TABLE `Portal`.`Mitarbeiter_2_BlackBerry` 
  ADD CONSTRAINT `fk_Blackberry`
  FOREIGN KEY (`id` )
  REFERENCES `Portal`.`Blackberry` (`id` )
  ON DELETE NO ACTION
  ON UPDATE NO ACTION
, ADD INDEX `fk_Blackberry` (`id` ASC)

但是当我尝试使用这个 sql 语句在该表中插入值时:

INSERT INTO Mitarbeiter_2_BlackBerry SET uebergabeAm = '2009-12-01 13:00:00', fk_Blackberry = (SELECT id FROM Blackberry WHERE id = '1')

我收到以下错误: 错误代码:1054 “字段列表”中的未知列“fk_BlackBerry”

有人知道可能是什么问题吗? 感谢您的任何提示:-) 拉斯。

【问题讨论】:

    标签: mysql insert foreign-keys innodb mysql-error-1054


    【解决方案1】:

    您需要将值放入列id 而不是约束fk_Blackerry。如果您知道该值为1,只需插入1 - 您不需要子查询。

    【讨论】:

      【解决方案2】:

      根据您可以从此处参考的语法。

      http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html

      fk_Blackerry 是符号,而不是列。外键约束为id的列,所以更新后的查询应该是

      INSERT INTO Mitarbeiter_2_BlackBerry SET uebergabeAm = '2009-12-01 13:00:00', id = (SELECT id FROM Blackberry WHERE id = '1')

      【讨论】:

        猜你喜欢
        • 2012-09-17
        • 1970-01-01
        • 2013-02-28
        • 2020-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-15
        • 1970-01-01
        相关资源
        最近更新 更多