Fra*_*rth 7 mysql sql database database-design
假设我有以下架构:
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`)
);
Run Code Online (Sandbox Code Playgroud)
一个用户只有一个历史记录,没有指向用户的历史记录的目的是许多其他表(在这个模式中没有提到)也有历史记录。
使删除用户也将删除其历史记录的最简单方法是什么?
您可以像这样使用触发器:
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 ;
Run Code Online (Sandbox Code Playgroud)