Bau*_*aub 21 mysql foreign-keys relationships
我试图找出关系和删除选项.
我有两个表,User并且UserStaff从1 User到n的关系UserStaff(用户可以有多个工作人员).
当我User被删除时,我想删除UserStaff与之关联的所有表User.当我UserStaff被删除时,我不希望发生任何事情User.我知道这是一种级联关系,但我不确定哪种方式.
即,我是否在我的UserStaff表中选择现有的外键并使其级联,或者我是否创建了一个新的外键User并将其设置为级联?
Evg*_*kiy 22
是的,这是可能的.您应该在UserStaff表中创建FK.通过这种方式:
用户表
CREATE TABLE `User` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
UserStaff表
CREATE TABLE `UserStaff` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`UserId` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`Id`),
KEY `UserId` (`UserId`),
CONSTRAINT `UserStaff_ibfk_1`
FOREIGN KEY (`UserId`)
REFERENCES `User` (`Id`)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17826 次 |
| 最近记录: |