next up previous contents
Next: 重複匯入紀錄 Up: Import 匯入 Previous: LOAD DATA   Contents   DYWANG_HOME

Mysqlimport 匯入紀錄

  1. 改用 mysqlimport 指令,同樣可以完成 LOAD DATA 語法的匯入功能,先找到上一節匯出的 dump1.txt。
    [root@kvm8 ~]# find /tmp/systemd-private-* -name dump1.txt
    /tmp/systemd-private-5703fd24db4b4a06810bcbdcbf47c485-mariadb.service-3apdPV/tmp/dump1.txt
    
  2. 將檔案 dump1.txt 的紀錄匯入到資料庫 dyw,出現資料表 dyw.dump 不存在的警告訊息。必須使用選項 --local,才能讀取指定的檔案,否則 mysqlimport 會到 server 預設位置找檔案。
    [root@kvm8 ~]# mysqlimport -uroot -p123qwe --local dyw \
    /tmp/systemd-private-5703fd24db4b4a06810bcbdcbf47c485-mariadb.service-3apdPV/tmp/dump1.txt
    mysqlimport: Error: 1146, Table 'dyw.dump' doesn't exist, when using table: dump
    
  3. 原因為 mysqlimport 匯入的檔案名稱,必須是資料表名稱,dump1.txt 是由資料表 animals 匯出,所以複製成 animals.txt。
    [root@kvm8 ~]# cp /tmp/systemd-private-5703fd24db4b4a06810bcbdcbf47c485-\
    mariadb.service-3apdPV/tmp/dump1.txt animals.txt
    
  4. 再用 mysqlimport 指令,將檔案 animals.txt 的紀錄匯入到資料庫 dyw,回應有 4 筆紀錄,但跳過 4 筆紀錄。
    [root@kvm8 ~]# mysqlimport -uroot -p123qwe --local dyw animals.txt 
    dyw.animals: Records: 4  Deleted: 0  Skipped: 4  Warnings: 4
    
  5. 登入 mariaDB 查看,資料表 animals 沒有新增紀錄。
    mariadb root@localhost:dyw> select * from animals;                              
    +----+---------+------+
    | id | name    | foot |
    +----+---------+------+
    | 1  | dog     | 4    |
    | 2  | cat     | 4    |
    | 3  | chicken | 2    |
    | 15 | bird    | 2    |
    +----+---------+------+
    
    4 rows in set
    Time: 0.022s
    
  6. 原因為資料表 animals 的欄位 id 設定為 primary key 且 auto_increment,要匯入的紀錄 id 重複,所以跳過。
    mariadb root@localhost:dyw> desc animals;                                       
    +-------+---------------------+------+-----+---------+----------------+
    | Field | Type                | Null | Key | Default | Extra          |
    +-------+---------------------+------+-----+---------+----------------+
    | id    | int(10) unsigned    | NO   | PRI | <null>  | auto_increment |
    | name  | varchar(20)         | NO   |     | <null>  |                |
    | foot  | tinyint(3) unsigned | NO   |     | <null>  |                |
    +-------+---------------------+------+-----+---------+----------------+
    
    3 rows in set
    Time: 0.031s
    



De-Yu Wang 2020-04-07