MYSQL转储格式化文本文件

时间:2012-09-06 10:08:51

标签: mysql

我有一个服务,它生成带有来自MYSQL数据库中某些表的信息的格式化文本文件。 目前,我以编程方式查询数据库并将其转储到TEXT文件中。 我想知道我是否可以在MYSQL数据库中做同样的事情。

这意味着当新记录添加到特定表时,MYSQL将运行一段代码来生成该格式化文本文件。

1 个答案:

答案 0 :(得分: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)读取甚至书写。