2013-11-26 44 views
0

是否可以通過mysql存儲過程訪問文本文件? 我需要打開追加模式的文本文件,並通過該程序通過mysql存儲過程在追加模式下訪問文本文件

基本上我被LOAD INTO OUTFILE寫一個表的數據插入在文件的最後一行。但是我的要求是,我已經完成了,我需要給一個額外的換行符。我目前的文件如下所示。

1|4700|00000036||20|5.00|20131123125826|183669|; 2|4700|00000037||20|5.00|20131123142638|155207|; 1|4700|00000038||20|5.00|20131123184917|663554|; 2|4700|00000039||20|5.00|20131123191402|416464|; 1|4700|00000040||20|2.30|20131123203542|260932|;

在此之後我需要把一個換行符。

回答

0

您可能已經發現您的不能使用SELECT INTO OUTFILE追加到文件。有一些方法可以使用shell腳本執行並運行mysql命令行客戶端,但是您希望在存儲過程中執行此操作,因此您無法這樣做。

在存儲過程中執行此操作的一種方法是將文本寫入特殊表格。您可以創建一個使用CSV引擎表,並插入到它是這樣的:

mysql> CREATE TABLE textfile (mytext VARCHAR(30) NOT NULL) ENGINE=CSV; 
Query OK, 0 rows affected (0.14 sec) 

表存儲爲一個CSV文件,所以你可以把它讀作簡單的文字,寫它使用INSERT到操作。要向它添加文本,只需插入值。

mysql> INSERT INTO textfile VALUES ('This is the first sentence.'); 
Query OK, 1 row affected (0.14 sec) 

mysql> INSERT INTO textfile VALUES ('This is the second sentence.'); 
Query OK, 1 row affected (0.00 sec) 

因爲它是一個CSV,內容是這樣的(我的Linux機器上):

[[email protected]]# cat /var/lib/mysql/test/textfile.CSV 
"This is the first sentence." 
"This is the second sentence."