mysql数据库id重新排序
方法1 删除表格并重新创建
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| CREATE TABLE old_table_bak SELECT * FROM old_table;
DROP TABLE old_table;
CREATE TABLE new_table ( id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, column1 VARCHAR(50), column2 INT(11) );
INSERT INTO new_table(column1, column2) SELECT column1, column2 FROM old_table_bak;
RENAME TABLE new_table TO old_table;
|
方法2 使用ALTER命令
如果表格中数据的数量较大,那么删除并重建表格就显得不太实际了。这时我们可以使用ALTER命令,通过修改表格中ID的值来实现重新排序。需要注意的是,ALTER命令可能会导致表格锁定,所以需要对表格使用LOCK TABLES命令来防止其它并发操作。
1 2 3 4 5 6 7
| LOCK TABLES old_table WRITE;
SET @rownum:=0; UPDATE old_table SET id=@rownum:=@rownum+1;
UNLOCK TABLES;
|