gpt4 book ai didi

mysql 删除中间行并修复主键并按排列顺序

转载 作者:行者123 更新时间:2023-11-29 10:01:21 25 4
gpt4 key购买 nike

我有一个表,其 id 是激活的主键,插入了 20 个数据。我已经删除了第 15,16,17 行,如何安排从 1 到 17 的递增顺序

   CREATE TABLE `cart` (
`id` int(255) NOT NULL,
`productname` varchar(255) NOT NULL,
`productquantity` varchar(255) NOT NULL,
`productsize` varchar(255) NOT NULL,
`productprice` varchar(255) NOT NULL

)

最佳答案

  • 按照 id 的递增顺序确定每行的 row_number,在派生表中从 1 开始。
  • 将此派生表与您的主表连接起来,并将 id 值更新为等于 row_number。这会将所有 id 值重置为从 1 开始(没有间隙)。

尝试(适用于所有 MySQL 版本):

UPDATE your_table AS t1 
JOIN
(
SELECT @row_no := @row_no + 1 AS row_num,
id
FROM your_table
JOIN (SELECT @row_no := 0) AS init
ORDER BY id
) AS dt ON dt.id = t1.id
SET t1.id = dt.row_num;

DB Fiddle DEMO

关于mysql 删除中间行并修复主键并按排列顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52870680/

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