mysql - MySQL在不使用触发器的情况下对父行进行软删除时级联硬删除子行:这可能吗?
问题描述
我正在使用 MySQL 版本 5.6.47-87.0
我有一个名为 的父表parentTable
和一个名为 的子表childTable
,这是创建这些表的脚本:
CREATE TABLE `parentTable` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`customerId` int(10) unsigned NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`deleted` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=251046 DEFAULT CHARSET=utf8;
CREATE TABLE `childTable` (
`parentId` int(10) unsigned NOT NULL,
`name` varchar(255) NOT NULL,
`description` text
PRIMARY KEY (`parentId`),
CONSTRAINT `childtable_parentid_foreign` FOREIGN KEY (`parentId`) REFERENCES `parentTable` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
childTable
当相应的记录被硬删除时,子记录也parentTable
被硬删除。
在不使用触发器的情况下,是否可以进行设置,以便在软删除childTable
相应记录时硬删除记录parentTable
(即:当parentTable.deleted
使用值更新列时,它不再是NULL
)?
解决方案
推荐阅读
- php - “/user/home/appname/storage/logs”中没有现有目录并且它不可构建:权限被拒绝
- powershell - powershell 脚本中的异常没有意义
- android - 如何将自定义数据发送给未来的构建器?
- javascript - 当我可以直接调用函数时,为什么在javascript中使用回调函数
- reactjs - 如何在本地运行我的 react 应用程序的生产版本?
- pyspark - Pyspark 爆破sql函数
- javascript - 如何在 Javascript/CSS 中制作一个具有恒定大小的框?
- c# - EF Core - 如何通过多个连接按可空列分组
- hugo - 进行hugo部署时如何跳过删除一些文件?
- mongodb - 命令失败,出现错误 16020 (Location16020):'表达式 $eq 正好采用 2 个参数。1 人通过了。在服务器本地主机上:27017