gpt4 book ai didi

mysql (innodb) 增加一个值来创建一个洞

转载 作者:行者123 更新时间:2023-11-29 12:06:27 25 4
gpt4 key购买 nike

假设我有一个简单的树类型表

id(key)     | parent | order
============================
1 | 0 | 0
2 | 0 | 1
4 | 2 | 0
5 | 2 | 1
6 | 2 | 2

我想插入一个新节点,使其具有 parent = 2order = 1,因此表数据如下所示:

id(key)     | parent | order
============================
1 | 0 | 0
2 | 0 | 1
4 | 2 | 0
5 | 2 | 2
6 | 2 | 3
7 | 2 | 1

例如现有行会增加其订单值。

确保现有行从现有任意值开始增加其顺序(非键字段)以便为我的插入语句留出空间的最佳方法是什么?

最佳答案

如果您有一个包含父级 $p 和订单位置 $o 的新行,您可以:

UPDATE table SET order = order + 1 WHERE parent = $p AND order >= $o

然后:

INSERT INTO order (id,parent,order) VALUES($id,$p,$o)

关于mysql (innodb) 增加一个值来创建一个洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31401195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com