我有一个ID为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
)
答案 0 :(得分:1)
id
的递增顺序确定每行的行号,从派生表中的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;