MySQL 的 auto_increment
最近發現在某表中有一些完全相同的重複行,為了去重,需要一個唯一欄位做行標識,這就會用到 AUTO_INCREMENT, 該屬性用於標識一個為一行,一般情形下,用該欄位應做主鍵。
環境: Centos7 , Mariadb 5.5.56
對已有表加行標識AUTO_INCREMENT,需要以下幾步:
1,需要先將表中資料匯出為文字方式(注意,不是SQL語句方式),可使用 開源的 Mysql Workbench的 資料匯出功能。
2,獲得當前該表的定義
show create table mytable;
3,然後刪除,再重新建立該表,
drop table mytable;
create table mytable..... ( 上步內容)
4 新增AUTO_INCREMENT欄位
ALTER TABLE mydb.mytable ADD rid int(5) not null auto_increment , ADD primary key (rid);
或 修改欄位為AUTO_INCREMENT
ALTER TABLE mydb.mytable change rid rrid int(5) auto_increment ;
5,匯入資料,同樣使用 Mysql workbench 的資料匯入功能;
關於auto_increment的幾個問題,例如:
Load Data 批量匯入時auto_increment會自動增加嗎?,如果匯入的資料中有auto_increment欄位資料,會與當前表中資料衝突嗎,如果衝突,mysql會怎樣處理?如果刪除一部分資料後,auto_increment欄位會填補這些資料?。。。。問題的解答請參考
MySQL Reset Auto Increment Values http://www.mysqltutorial.org/mysql-reset-auto-increment