Не могу вставить значения с внешним ключом в MySQL - PullRequest
0 голосов
/ 07 января 2010

У меня работает MySQL (5.1.42 на OsX). Я добавил внешний ключ с этим оператором 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' в 'списке полей'

Кто-нибудь знает, что может быть не так? Спасибо за любую подсказку :-) Lars.

Ответы [ 2 ]

1 голос
/ 07 января 2010

В соответствии с синтаксисом, который вы можете ссылаться здесь.

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

fk_Blackerry - это символ, а не столбец. Столбец, для которого ограничение внешнего ключа является идентификатором, поэтому обновленный запрос должен быть

INSERT INTO Mitarbeiter_2_BlackBerry SET uebergabeAm = '2009-12-01 13:00:00', id = (ВЫБРАТЬ id ИЗ Blackberry WHERE id = '1')

1 голос
/ 07 января 2010

Вам нужно поместить значение в столбец id, а не ограничение fk_Blackerry. И если вы знаете значение 1, просто вставьте 1 - подзапрос вам не нужен.

...