У меня возникли проблемы с ограничением внешнего ключа, и, вероятно, я неправильно помещаю код.Ограничение внешнего ключа MySQL
Идея состоит в том, что таблица аэропортов принимает только значение типа, которое находится в таблице apType. Если тип не находится в таблице apType, он должен сгенерировать ошибку. Тем не менее, я тестировал это, и я не могу заставить его генерировать ошибку, он просто помещает тип, введенный в базу данных, и доволен им.
Аэропорт стол:
CREATE TABLE `airport`(
`id` int primary key AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`rwyCount` int,
`lat` float(6),
`lon` float(6),
`type` varchar(255),
constraint FOREIGN KEY (type) REFERENCES apType(type) match simple
)ENGINE=MyISAM DEFAULT CHARSET=latin1;
apType Таблица:
CREATE TABLE `apType`(
`id` int primary key AUTO_INCREMENT,
`type` varchar(255) NOT NULL
)ENGINE=MyISAM DEFAULT CHARSET=latin1;
вставка значений для apType (это единственные ценности, которые должны быть действительными):
INSERT INTO `apType` (`type`) VALUES ('private'),('public'),('military');
Вставка что должен генерировать ошибку:
insert into `airport` (`name` , `rwyCount` , `type` , `lat` , `lon`) values ('failland', 3 , 'space', 45.588611, -122.5975);
Может ли кто-нибудь выяснить эту проблему?
Есть статьи по всему Интернету, которые объясняют это. Вы пробовали использовать свою любимую поисковую систему? Это очень продуктивный навык для изучения - способность исследовать собственные ответы на свои собственные проблемы. – MatBailie
Я действительно, и многие ответы предоставили полезную информацию, но ничего, что могло решить мою проблему –