2010-01-07 60 views
0

我在MySQL上運行MySQL(5.1.42)。 我加入這個SQL語句外鍵:無法用MySQL中的外鍵插入值

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'

任何人的想法可能是什麼錯誤? 感謝您的任何提示:-) Lars。

回答

1

您需要將值放在id列而不是約束fk_Blackerry。如果你知道價值是1,只需插入1 - 你不需要子查詢。

+0

非常感謝它:-) – Lars 2010-01-07 12:55:25

1

按照您可以從這裏引用的語法。

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 ')

+0

也非常感謝 - 兩個答案幫助我:-) – Lars 2010-01-07 12:56:06