删除lys_link中id为15的记录后,后续ID自动前移以保证顺序完整,需要执行以下步骤:
首先删除lys_link中id为15
然后更新所有大于15的ID,使它们减1
最后重置自增ID值
以下是完整的SQL操作:
-- 1. 开始事务
START TRANSACTION;
-- 2. 删除指定ID的记录
DELETE FROM lys_link WHERE id = 15;
-- 3. 更新所有大于被删除ID的记录,使ID前移
UPDATE lys_link SET id = id - 1 WHERE id > 15;
-- 4. 重置自增ID
-- 先获取当前最大ID
SET @max_id = (SELECT IFNULL(MAX(id), 0) FROM lys_link);
-- 然后重置自增值
SET @alter_sql = CONCAT('ALTER TABLE lys_link AUTO_INCREMENT = ', @max_id + 1);
PREPARE stmt FROM @alter_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- 5. 提交事务
COMMIT;