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 次 |
最近记录: |