gpt4 book ai didi

mysql - 无法添加 FK 约束 #1215

转载 作者:行者123 更新时间:2023-11-29 11:48:43 26 4
gpt4 key购买 nike

我看到了有关此错误的多个问题,但我无法解决这个问题,我需要帮助。因此,我的表(显示错误)具有以下结构:

CREATE TABLE IF NOT EXISTS `services_providers` (
`GUID_users` char(36) NOT NULL,
`GUID_services` char(36) NOT NULL,
`GUID` char(36) NOT NULL,
`lastUpdated` varchar(36),
PRIMARY KEY (`GUID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我设置为PK每条记录的 GUID 为 FK GUID_usersGUID_services
FK由以下查询设置:

ALTER TABLE `services_providers`
ADD CONSTRAINT `services_providers_ibfk_1` FOREIGN KEY (`GUID_users`) REFERENCES `users` (`GUID`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `services_providers_ibfk_2` FOREIGN KEY (`GUID_services`) REFERENCES `services` (`GUID`) ON DELETE CASCADE ON UPDATE CASCADE;

用户 - 结构

CREATE TABLE IF NOT EXISTS `users` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`GUID` char(36) NOT NULL,
`first_name` varchar(256) DEFAULT NULL,
`last_name` varchar(512) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `id_roles` (`id_roles`)
) ENGINE=InnoDB AUTO_INCREMENT=85 DEFAULT CHARSET=utf8;

服务 - 结构

CREATE TABLE IF NOT EXISTS `services` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`GUID` char(36) NOT NULL,
`name` varchar(256) DEFAULT NULL,
`duration` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `id_service_categories` (`id_service_categories`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

现在,当我执行上述更改时,我得到:

1215 - Cannot add foreign key constraint

我只想添加为 FKusers 中每条记录的 GUID和services并有 PK现场GUID .

为什么会出现这种情况?

最佳答案

您通常会向另一个表的主键添加外键约束。主键是id,而不是GUID。我建议您将这些列用于 services_providers

如果您坚持使用GUID,则将它们声明为唯一

关于mysql - 无法添加 FK 约束 #1215,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34514712/

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