上面可以看出FileOwner是文件表的外键,引用的是用户表的UserID。且这里外键约束设置为"ON DELETE SET NULL ON UPDATE CASCADE "
现在用户表有记录(省略其他无关的字段):
UserID
ST001
,而文件表有记录
FileID FileOwner
1 ST001
那 么如果我删除用户表中ST001对应记录时,则根据ON DELETE SET NULL规则,文件表中FileOwner应该被设置为null,动手尝试后也确实如此;如果我将用户表中ST001改为ST003,则根据ON UPDATE CASCADE规则,文件表中FileOwner应该连锁设置为ST003,也的确如此。
代码如下:::
PRIMARY KEY (`FileID`),// //FileID是文件表的主键,一个主键对应一个外键
KEY `tbluser` (`UserID`) USING BTREE, //引用的是用户表的UserID
KEY `FK_tblfile_1` (`FileOwner`), //FileOwner是文件表的外键
CONSTRAINT `FK_tblfile_1` FOREIGN KEY (`FileOwner`) REFERENCES `tbluser` (`UserID`) ON DELETE SET NULL ON UPDATE CASCADE
数据表自动同步删改