首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法添加FK约束#1215

无法添加FK约束#1215
EN

Stack Overflow用户
提问于 2015-12-29 16:07:17
回答 1查看 32关注 0票数 0

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

代码语言:javascript
复制
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;

我将每条记录的GUID设置为PKFK设置为GUID_usersGUID_services

这个查询设置了FK

代码语言:javascript
复制
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;

用户-结构

代码语言:javascript
复制
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;

服务-结构

代码语言:javascript
复制
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 -无法添加外键约束

我只想以FK的形式添加表usersservices中每条记录的GUID,并将字段GUID作为PK

为什么要搞这个?

EN

回答 1

Stack Overflow用户

发布于 2015-12-29 16:11:14

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

如果坚持使用GUID,那么将它们声明为unique

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34514712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档