MySQL如何匯出帶日期格式的檔案

來源:互聯網
上載者:User

MySQL如何匯出帶日期格式的檔案

一網友問在MySQL中如何只用SQL語句匯出帶日期格式的檔案。覺得有點意思,於是嘗試了一下。匯出檔案使用SELECT INTO OUTFILE 但是OUTFILE後面的值不能使用變數,所以只能使用動態SQL語句來實現。其中表user為測試表。

具體語句如下所示

mysql> SET @SqlScript= CONCAT("SELECT * INTO OUTFILE '/tmp/sql_out_", DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'), ".txt' FROM `user`;");
 
Query OK, 0 rows affected (0.01 sec)
 
mysql> PREPARE Sql_Text FROM @SqlScript;
 
Query OK, 0 rows affected (0.00 sec)
 
Statement prepared
 
mysql> EXECUTE Sql_Text;
 
Query OK, 33 rows affected (0.00 sec)
 
mysql>

關於SELECT INTO OUTFILE時有幾個需要注意的,必須確保當前帳號具有對應目錄的寫入權限。否則就會出現許可權問題" Can't create/write to file 'xxxxx' (Errcode: 13 - Permission denied)"

另外關於MySQL prepare語句的SQL文法和知識點:

PREPARE statement_name FROM preparable_sql_statement;              /*定義*/
 
EXECUTE statement_name [USING @var_name [, @var_name] ...];        /*執行預先處理語句*/
 
{DEALLOCATE | DROP} PREPARE statement_name                          /*刪除定義*/ ;

PREPARE語句用於預備一個語句,並指定名稱statement_name,以後引用該語句。語句名稱對大小寫不敏感。preparable_sql_statement可以是一個文字字串,也可以是一個包含了語句文本的使用者變數。該文本必須表現為一個單一的SQL語句,而不是多個語句。在這語句裡,‘?’字元可以被用於標識參數,當執行時,以指示資料值綁定到查詢後。‘?’字元不應加引號,即使你想要把它們與字串值結合在一起。參數標記只能用於資料值應該出現的地方,而不是SQL關鍵字,標識符,等等

如果可以藉助shell指令碼之類的工具,當然還有很多方法可以匯出帶日期格式的資料檔案。在此不做過多展開。

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.