自增主鍵當前值查詢與重置是分庫分表、數據遷移、主從同步修復的高頻操作。兩條標準 SQL 搞定。
SELECT AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'your_db'
AND TABLE_NAME = 'your_table';
SELECT 權限於 information_schema。ALTER TABLE your_table AUTO_INCREMENT = 10000;
MAX(id) + 1。TRUNCATE TABLE 自動歸 1,或手動 ALTER ... AUTO_INCREMENT = 1。AUTO_INCREMENT = 1000000 避免與舊系統 ID 衝突。#!/bin/bash
DB=test_db
TBL=orders
NEXT=$(mysql -N -e "SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA='$DB' AND TABLE_NAME='$TBL';")
echo "Next auto_increment: $NEXT"
MAX_ID=$(mysql -N -e "SELECT MAX(id) FROM $DB.$TBL;")
echo "Current max id: $MAX_ID"
if [ "$NEXT" -le "$MAX_ID" ]; then
echo "WARNING: auto_increment <= max_id, fixing..."
mysql -e "ALTER TABLE $DB.$TBL AUTO_INCREMENT = $((MAX_ID + 1));"
fi
自增值管理是分布式架構下的基建技能。information_schema 查、ALTER TABLE 改,兩條命令走天下。