gpt4 book ai didi

MySQL 外键约束

转载 作者:行者123 更新时间:2023-11-29 08:25:58 24 4
gpt4 key购买 nike

我在外键约束方面遇到了一些问题,并且可能没有正确地将代码组合在一起。

这个想法是 airports 表只接受 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;

ap类型表:

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

有人能解决这个问题吗?

最佳答案

您正在使用的数据库引擎中似乎尚未实现外键。 Why doesn't MySQL's MyISAM engine support Foreign keys?

也许考虑切换到 InnoDb?

关于MySQL 外键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17913451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com