删除记录并重新排序ID_星怀蓝梦

删除记录并重新排序ID

2025-06-25 09:07:18  浏览:98  作者:管理员
要实现删除ID为112的记录后,后续ID自动前移以保证顺序完整,需要执行以下步骤:首先删除ID为112的记录然后更新所有大于112的ID,使它们减1最后重置自增ID值以下是完整的SQL操...

要实现删除ID为81的记录后,后续ID自动前移以保证顺序完整,需要执行以下步骤:


首先删除ID为81的记录

然后更新所有大于81的ID,使它们减1

最后重置自增ID值

以下是完整的SQL操作:

-- 删除记录并重新排序ID的完整预处理语句
SET @delete_id = 81;

-- 删除记录
DELETE FROM lys_article WHERE id = @delete_id;
DELETE FROM lys_all_content WHERE id = @delete_id;

-- 更新ID
SET @sql_update1 = 'UPDATE lys_article SET id = id - 1 WHERE id > ?';
PREPARE stmt1 FROM @sql_update1;
EXECUTE stmt1 USING @delete_id;
DEALLOCATE PREPARE stmt1;

SET @sql_update2 = 'UPDATE lys_all_content SET id = id - 1 WHERE id > ?';
PREPARE stmt2 FROM @sql_update2;
EXECUTE stmt2 USING @delete_id;
DEALLOCATE PREPARE stmt2;

-- 重置自增ID
SET @sql_reset1 = CONCAT('ALTER TABLE lys_article AUTO_INCREMENT = ', (SELECT MAX(id)+1 FROM lys_article));
PREPARE stmt3 FROM @sql_reset1;
EXECUTE stmt3;
DEALLOCATE PREPARE stmt3;

SET @sql_reset2 = CONCAT('ALTER TABLE lys_all_content AUTO_INCREMENT = ', (SELECT MAX(id)+1 FROM lys_all_content));
PREPARE stmt4 FROM @sql_reset2;
EXECUTE stmt4;
DEALLOCATE PREPARE stmt4;


评论区

共 0 条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

【随机内容】

返回顶部