在我的應用程序中,組織的管理員可以將用戶添加到其組織中。一旦表單提交,我首先用用戶電子郵件和與管理員關聯的組織ID向我的用戶表中插入新記錄。在創建該用戶之後,將用戶電子郵件和用戶組織標識和user_id
創建用於將用戶連接到組織的成員記錄。我遇到的問題是在最近創建的用戶user_id
的成員表上創建記錄。雖然我沒有問題,存儲organization_id
目前,由於某種原因使user_id
拋出相關的外鍵的錯誤:MySQL:無法添加或更新子行:外鍵約束失敗
Cannot add or update a child row: a foreign key constraint fails (`work`.`member`, CONSTRAINT `member_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `organization` (`organization_id`) ON DELETE CASCADE ON UPDATE CASCADE)]
爲什麼我不能轉嫁紀錄創造USER_ID。是否因爲該列與外鍵關聯?
下面是插入數據:
用戶插入件(沒有錯誤):
INSERT INTO `user` (`user_id`,`email`,`organization_id`,`updatedAt`,`createdAt`) VALUES (DEFAULT,'[email protected]','1','2016-06-07 11:51:54','2016-06-07 11:51:54');
會員插入(錯誤與USER_ID):
INSERT INTO `member` (`member_id`,`member_email`,`organization_id`,`user_id`,`updatedAt`,`createdAt`) VALUES (DEFAULT,'[email protected]','1',8,'2016-06-07 11:51:54','2016-06-07 11:51:54');
用戶表:
`user` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(255) DEFAULT NULL,
`last_name` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
`organization_id` int(11) DEFAULT NULL,
`authentication_token` varchar(255) DEFAULT NULL,
`reset_password_token` varchar(255) DEFAULT NULL,
`reset_password_expires` datetime DEFAULT NULL,
`createdAt` datetime NOT NULL,
`updatedAt` datetime NOT NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
組織表:
`organization` (
`organization_id` int(11) NOT NULL AUTO_INCREMENT,
`organization_name` varchar(255) DEFAULT NULL,
`admin` varchar(255) DEFAULT NULL,
`createdAt` datetime NOT NULL,
`updatedAt` datetime NOT NULL,
PRIMARY KEY (`organization_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
會員表:
`member` (
`member_id` int(11) NOT NULL AUTO_INCREMENT,
`member_email` varchar(255) DEFAULT NULL,
`organization_id` int(11) DEFAULT NULL,
`user_id` int(11) DEFAULT NULL,
`createdAt` datetime NOT NULL,
`updatedAt` datetime NOT NULL,
PRIMARY KEY (`member_id`),
UNIQUE KEY `member_email` (`member_email`),
UNIQUE KEY `member_user_id_organizationId_unique` (`organization_id`,`user_id`),
KEY `user_id` (`user_id`),
CONSTRAINT `member_ibfk_1` FOREIGN KEY (`organization_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `member_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `organization` (`organization_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
什麼是你的user_id在用戶表中的值,插入後? – ZeusNet
@OP:表'organization'中是否存在'organization_id'值'1'? –
'organization_id int(11)DEFAULT NULL,'表中的用戶似乎已經過時了,您的鏈接表成員可以刪除 – DKSan