开发者社区> 问答> 正文

插入记录并增加其他记录的值

已解决

我有一个带有自定义排序顺序列的表。

ID NAME ORDER 1 Jack 4 2 Jill 2 3 Mike 5 4 Mark 1 5 Bill 3

我想插入一个ID为6,名称为Jane且ORDER为3的新记录。我想插入该记录,以使旧记录增加,以便为新记录腾出空间,结果是这个:

ID NAME ORDER 1 Jack 5 2 Jill 2 3 Mike 6 4 Mark 1 5 Bill 4 6 Jane 3

可以使用SQL脚本吗?我一直在寻找这个答案,但不确定是否可以在我的情况下使用。另外,它需要一个额外的表来临时保存值,我想避免这种情况。

谢谢。

我忘了补充一点,第三列没有唯一约束。尽管我了解有解决此问题的方法。

展开
收起
保持可爱mmm 2019-12-14 20:55:04 384 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    您可以通过两个查询来执行此操作:

    update mytable set order = order + 1 where order >= 3; insert into mytable(id, name, order) values(6, 'Jane', 3);

    但是请注意,这会创建竞争条件,并且在并发压力下可能无法正常运行。

    更好的解决方案是不存储客户订单,而是在查询中动态计算(您可以创建视图以使其更容易)。为此,您需要描述订购背后的逻辑。

    问题来源于stack overflow

    2019-12-14 20:55:26
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载