Я пытаюсь вставить внешние ключи в свою базу данных, но в некоторых случаях я не могу заставить этого работать, пока мои другие внешние ключи в порядке. Я уже искал ответы, и я проверил свои типы, но до сих пор не могу найти проблему. (С помощью MySQL Workbench)mysql add foreign key error 1215
Table 1: klant
klantnaam VARCHAR(45) PK NN
fabriek VARCHAR(45) PK NN
machine VARCHAR(45) NN
Table 2: machine
machine VARCHAR(45) PK NN
fabriek VARCHAR(45) NN
теперь я хочу machine.fabriek быть внешним ключом (для klant.fabriek).
Так на вкладке «Внешние ключи» я добавить внешний ключ, как:
name: fk_fabriek
Reference Table: 'slalist' . 'klant'
Column: fabriek
Reference Column: fabriek
, когда я пытаюсь применить эти изменения, я получаю эту ошибку
1215: Cannot add foreign key constraint
SQL Statement:
CREATE TABLE `slalist`.`machine` (
`machine` VARCHAR(45) NOT NULL,
`fabriek` VARCHAR(45) NOT NULL,
PRIMARY KEY (`machine`),
INDEX `fk_fabriek_idx` (`fabriek` ASC),
CONSTRAINT `fk_fabriek`
FOREIGN KEY (`fabriek`)
REFERENCES `slalist`.`klant` (`fabriek`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ли кто-нибудь знает, что я делаю не так? Искал половину паутины, но не смог найти подходящего ответа.
Заранее благодарен!
Герт
Спасибо, что ответили. Я сделал ошибку типа, «fabriek» является первичным ключом. Между тем я сделал EER в mySQL Workbench и попытался преобразовать его в SQL-скрипт, но, к сожалению, я получил ту же ошибку. Я сделал снимок экрана с моего EER, может быть, вы можете увидеть, что я делаю неправильно. http://tinypic.com/r/20z7hjp/5 - ссылка – GeertG
размещено изображение EER слишком мало. одно предложение проверить ваши таблицы имеет innodb двигатель –
http://i39.tinypic.com/jgntkg.jpg проверьте, что один, нажмите на изображение, которое будет достаточно большим. Я тоже это проверил, каждый стол использует InnoDB – GeertG