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> 

clip_image001

 

        關於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腳本之類的工具,當然還有很多方法可以導出帶日期格式的數據文件。在此不做過多展開。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM