1. 程式人生 > >MySQL 的 auto_increment

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