我一直在寻找这个。我有一个包含以下字段的 MySQL 表:
Id | Parent | Code | Name
1 | 0 | 1 | bla
2 | 1 | 1.1 | blabla
3 | 1 | 1.2 | blable
4 | 3 | 1.2.1 | blablebla
5 | 3 | 1.2.2 | blableble
6 | 1 | 1.3 | blabli
7 | 1 | 1.4 | blablo
8 | 0 | 2 | ble
9 | 0 | 3 | bli
10 | 9 | 3.1 | blibla
... 等等!
我想删除 ( ID 3
) 并递归地重建该CODE
字段,以便它继续按顺序排列。对于这个例子,我只需要选择代码等于:1.3* 1.4* 的 id
换句话说:
- (任何大于 2 的数字)
我怎样才能做到这一点?
所以决赛桌结束了
Id | Parent | Code | Name
1 | 0 | 1 | bla
2 | 1 | 1.1 | blabla
6 | 1 | 1.2 | blabli
7 | 1 | 1.3 | blablo
8 | 0 | 2 | ble
9 | 0 | 3 | bli
10 | 9 | 3.1 | blibla
对于递归删除,我使用 on delete cascade all,因为 PARENT 是 ID 的索引。但我需要手动选择所有 1.3 ... 1.* 和他们的孩子并将它们重写为 1.2 ... 1.(*-1)
先感谢您!