gpt4 book ai didi

mysql - 添加外键产生错误 "#1215 - Cannot add foreign key constraint"

转载 作者:行者123 更新时间:2023-11-29 17:50:32 24 4
gpt4 key购买 nike

  CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`first_name` varchar(50) NOT NULL,
`last_name` varchar(50) NOT NULL,
`email` varchar(150) NOT NULL,
`is_email_verify` int(11) DEFAULT '0',
`phone_no` varchar(15) NOT NULL,
`password` varchar(255) NOT NULL,
`status` varchar(10) NOT NULL,
`role` varchar(50) NOT NULL DEFAULT 'employee',
`photo` varchar(150) NOT NULL,
`group_id` int(11) DEFAULT '0',
`shift_id` int(11) NOT NULL DEFAULT '0',
`shift_date` date NOT NULL,
`created` datetime NOT NULL,
`updated` datetime NOT NULL,
`first_off` varchar(15) NOT NULL,
`second_off` varchar(15) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `project_maps` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`project_id` int(11) UNSIGNED NOT NULL,
`user_id` int(11) UNSIGNED DEFAULT NULL,
`group_id` int(11) UNSIGNED DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fk_project_id` (`project_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
COMMIT;

我正在尝试将project_map.user_id映射到用户表..通过使用

ALTER TABLE users ADD CONSTRAINT fk_project_users FOREIGN KEY (id) REFERENCES project_maps(user_id);

产生错误“#1215 - 无法添加外键约束”任何人都可以解释为什么吗?

最佳答案

您需要向 project_maps 添加外键约束,而不是 users:

ALTER TABLE project_maps
ADD CONSTRAINT fk_project_users
FOREIGN KEY (user_id) REFERENCES users (id);

但除此之外,两个表中的用户 ID 列类型并不相同。在 users 表中,您将其声明为无符号整数:

`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT

project_maps 表中,您使用不同的定义:

`user_id` int(11) NOT NULL AUTO_INCREMENT

只需在两个表中使用相同的定义,您应该能够添加约束:

int(11) NOT NULL

仅供引用,MySQL 中的整数默认是有符号的,除非您明确将它们设置为无符号。

关于mysql - 添加外键产生错误 "#1215 - Cannot add foreign key constraint",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49398058/

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