#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
нет)?
Комментарии:
1. Я так не думаю. MySQL ничего не знает о мягком удалении, это на уровне приложения.
2. @Barmar Я думал, что это так, но опубликовал этот вопрос в надежде, что кто-нибудь знает способ. Спасибо!