【发布时间】:2013-05-09 19:19:58
【问题描述】:
我需要关于ON DELETE CASCADE 是否适合在下表中使用的建议
CREATE TABLE category
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
maincategory INT DEFAULT NULL,
FOREIGN KEY(maincategory) REFERENCES category(id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB DEFAULT CHARSET = utf8;
在这种情况下,如果主类别被删除,ON DELETE CASCADE 将简单地删除所有子类别。这是推荐的方法吗?
【问题讨论】:
-
如果你只是在谈论这件事,是的,我认为它很好。但有时您需要进行虚假删除(使用名为 isDeleted 的列)以及何时执行此操作。
ON DELETE CASCADE不会再引起问题,所以我说这样做。
标签: mysql cascade sql-delete