MariaDB – LOAD Data into Tables

Loading

測試環境為 CentOS 8 x86_64 虛擬機.

LOAD Data into Tables 函數有以下幾種.

  • LOAD_FILE
    LOAD_FILE 函數指定載入檔案位置(只限定位於 MySQL Server Host 上的檔案),需注意權限問題(該使用者需有 File 的權限,可使用 SQL 指令 SHOW PRIVILEGES; 來檢視),無法讀取時 LOAD_FILE 函數會回傳 NULL .得到 NULL 代表 mysql 使用者無法讀取該檔案,這時要注意存放檔案的目錄需要可以進入 (a+x) 的權限,檔案本身至少需要可供讀取 (a+r) 的權限.

    另外一個可能是當檔案大小超出 MYSQL 的預設時 max_allowed_packet 也無法存取,可以使用SQL 指令 SHOW VARIABLES LIKE ‘max_allowed_packet’; 來檢視.

    MariaDB [(none)]> SHOW VARIABLES LIKE 'max_allowed_packet';
    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 1048576 |
    +--------------------+---------+
    1 row in set (0.00 sec)
    
    [root@localhost ~]# cat /var/lib/mysql/test.txt 
    ABC
    123
    [root@localhost ~]# mysql -u root -p
    Enter password: 
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 3
    Server version: 5.5.60-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    MariaDB [(none)]> SELECT LOAD_FILE('/var/lib/mysql/test.txt');
    +--------------------------------------+
    | LOAD_FILE('/var/lib/mysql/test.txt') |
    +--------------------------------------+
    | ABC
    123
                                 |
    +--------------------------------------+
    1 row in set (0.01 sec)
    

    更多關於 Load 載入資料到資料表,請參考 – https://benjr.tw/101779

  • LOAD DATA INFILE
    現在透過 SQL 語法 LOAD DATA INFILE 把檔案匯入到資料庫,下面範例使用 /etc/passwd .

    MariaDB [dbtest]> LOAD DATA INFILE '/etc/passwd' INTO TABLE testdb.passwd FIELDS TERMINATED BY ':' ENCLOSED BY '"' LINES TERMINATED BY '\n' (Username , Password , UID  , GID , IDInfo , HomeDir , Shell) ;
    

    更多關於 LOAD DATA 請參考 – https://benjr.tw/103012

  • LOAD INDEX
    TBD
  • LOAD XML
    XML (Extensible Markup Language) 是一種可延伸標示語言.
    相較於 HTML 是定義好的國際通用的標記式語言,我們是無法自訂標記(標籤 Tag),只能變更其屬性值,這時候可以使用 XML 來自定,讓電腦之間可以處理自定的資訊,這邊來看在 MariaDB 資料庫如何處理這些自定的標記(標籤 Tag).
    https://benjr.tw/102790
沒有解決問題,試試搜尋本站其他內容

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料