假设我有以下架构:
CREATE TABLE `users` (
`id` int(10) unsigned auto_increment,
`historyId` varchar(255),
PRIMARY KEY (`id`)
);
CREATE TABLE `histories` (
`id` int(10) unsigned auto_increment,
`history` TEXT,
PRIMARY KEY (`id`)
);
一个用户只有一个历史记录,没有历史记录指向用户的目的是许多其他表(未在此架构中提及)也有历史记录。
删除用户的最简单方法是什么也将删除其历史记录?
最佳答案
你可以像这样使用触发器:
DELIMITER $$
CREATE TRIGGER delete_user_history_on_delete_user
AFTER DELETE ON `users`
FOR EACH ROW
BEGIN
DELETE FROM `histories` WHERE id = old.historyId;
END$$
DELIMITER ;
关于mysql - ON DELETE CASCADE 的反向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5560172/