2012-09-06 141 views
0

我有一個服務,產生格式化的文本文件與來自某些表中的信息在MYSQL數據庫。 目前我以編程方式查詢數據庫並將其轉儲到TEXT文件中。 我不知道我是否可以在MYSQL數據庫中做同樣的事情。MYSQL轉儲格式化文本文件

這意味着當一個新記錄被添加到特定的表時,MYSQL將運行一段代碼來生成該格式化的文本文件。

+0

你可以從[觸發器](http://「選擇...輸入文件'文件名'](http://dev.mysql.com/doc/en/select-into.html) dev.mysql.com/doc/en/triggers.html)。 – eggyal

+0

@eggyal不確定,但問題可能是文件被覆蓋而不是附加新條目?所以每次插入記錄時都必須寫整個表格。 – fancyPants

回答

1

你沒有講太多關於你的使用案例,但也許CSV引擎可能是你在找什麼?

manual

當你創建一個CSV表,服務器在數據庫中創建一個目錄表的格式文件。該文件以表名開頭並具有.frm擴展名。存儲引擎還會創建一個數據文件。它的名字以表名開頭,擴展名爲.CSV。數據文件是純文本文件。將數據存儲到表中時,存儲引擎會以逗號分隔值格式將其保存到數據文件中。

mysql> CREATE TABLE test (i INT NOT NULL, c CHAR(10) NOT NULL) 
    -> ENGINE = CSV; 
Query OK, 0 rows affected (0.12 sec) 

mysql> INSERT INTO test VALUES(1,'record one'),(2,'record two'); 
Query OK, 2 rows affected (0.00 sec) 
Records: 2 Duplicates: 0 Warnings: 0 

mysql> SELECT * FROM test; 
+------+------------+ 
| i | c   | 
+------+------------+ 
| 1 | record one | 
| 2 | record two | 
+------+------------+ 
2 rows in set (0.00 sec) 

與MySQL 5.1.9開始,創建一個CSV表還創建存儲該表的狀態和存在表中的行的數量的對應的圖元文件。該文件的名稱與具有擴展名CSM的表的名稱相同。

如果檢查通過執行前面的語句創建數據庫目錄中的文件test.CSV,其內容應該是這樣的:

"1","record one" 
"2","record two" 

這種格式可以讀取,甚至寫的,由電子表格諸如Microsoft Excel或StarOffice Calc等應用程序。