php - 删除主 ID 时删除所有子 ID

标签 php mysql

我可能解释错了,但这里是。我想从 MySql 数据库创建一个文件夹系统。

文件夹 1
---子文件夹1
---子文件夹2
---子文件夹 3
----子子文件夹 1
----子子文件夹2

现在这一切都加载到我的 MySql 数据库中,如下所示:
enter image description here

现在假设我想删除 ID 2(即文件夹 2),但文件夹 2 下是 ID 7(测试 1),该文件夹下是 ID 8(测试 2)。所以在文件夹 TreeView 中它看起来像这样:Folder 2/Testing 1/Testing 2

我的问题是如何编写一个 PHP/MySql 脚本来删除 ID 2 下的所有内容,而不必复制我的 MySql 代码 3 次来删除所有内容? (而且每个文件夹和子文件夹中可能还有更多的文件夹需要删除,但它们都属于ID 2)

提前谢谢大家!

最佳答案

ALTER TABLE `table` MODIFY COLUMN `id` INT UNIQUE NOT NULL AUTO_INCREMENT;
ALTER TABLE `table` MODIFY COLUMN `child` INT NOT NULL;
ALTER TABLE `table` ADD FOREIGN KEY (`child`) REFERENCES `table` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

Mysql 是一个RDBMS。使用那个词的 R(关系),它就是为此而生的。

DELETE CASCADE 子句将在父项被删除时执行此操作,所有子项也将递归地删除。但这也意味着,如果父项尚不存在,则您无法添加子项,因此您可能不得不更改业务流程。

关于php - 删除主 ID 时删除所有子 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26170645/

相关文章:

php - 检查两次之间的时间

php - 通过 php && mysql 的单选按钮,但给出了错误的值

java - 数据库 INSERT 语句

mysql - 将 sql 查询转换为 ActiveRecord Rails

php - 如何从 php 获取 wercker 环境变量?

PHP-OOP 扩展两个类?

php - 如何在 laravel 中插入/更新带重音的特殊字符

php - 使用 PHP 批量插入

php - codeigniter 2 与原则 2 - 我可以将数据插入到表中,但无法取回数据

mysql - 克隆 MySQL 行加上新的唯一 ID