next up previous contents
Next: 實機操作練習題 Up: Duplicates 重複紀錄 Previous: 不重複顯示重複紀錄   Contents

刪除重複紀錄

  1. 顯示資料表 animals,其中 cat 重複兩筆。
    mysql> select * from animals;
    id	name	foot
    1	dog	4
    2	cat	4
    3	chicken	2
    4	cat	4
    mysql>
    
  2. 產生一個名為 tmp 的暫時資料表,其紀錄來自資料表 animals,但重複紀錄只存一筆。
    mysql> create table tmp
        -> select id,name,foot
        -> from animals
        -> group by name,foot;
    mysql>
    
  3. 刪除原始資料表 animals。
    mysql> drop table animals;
    mysql>
    
  4. 重新名命資料表 tmp 為 animals。
    mysql> alter table tmp rename to animals;
    mysql>
    
  5. 顯示新的資料表 animals 已沒有重複紀錄。
    mysql> select * from animals;
    id	name	foot
    2	cat	4
    3	chicken	2
    1	dog	4
    mysql>
    
  6. 如果照以上方式重新產生新的資料表 animals,原始設定的欄位資料格式可能不見,id 重新設定為 primary key。
    mysql> alter table animals add primary key(id);
    Query OK, 0 rows affected (0.15 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
  7. 重新設定 id 欄位的格式,包含自動增加。
    mysql> alter table animals modify id int unsigned not null auto_increment;
    Query OK, 4 rows affected (0.16 sec)
    Records: 4  Duplicates: 0  Warnings: 0
    
  8. 重新設定自動增加從 150 開始編號。
    mysql> ALTER TABLE animals AUTO_INCREMENT = 150;
    Query OK, 4 rows affected (0.37 sec)
    Records: 4  Duplicates: 0  Warnings: 0
    



2017-06-01