我有一项服务可以生成格式化的文本文件,其中包含来自 MYSQL 数据库中某些表的信息。目前我以编程方式查询数据库并将其转储到 TEXT 文件中。我想知道我是否可以在 MYSQL 数据库中做同样的事情。
这意味着当一个新记录被添加到一个特定的表中时,MYSQL 将运行一段代码来生成该格式化的文本文件。
我有一项服务可以生成格式化的文本文件,其中包含来自 MYSQL 数据库中某些表的信息。目前我以编程方式查询数据库并将其转储到 TEXT 文件中。我想知道我是否可以在 MYSQL 数据库中做同样的事情。
这意味着当一个新记录被添加到一个特定的表中时,MYSQL 将运行一段代码来生成该格式化的文本文件。
您没有详细介绍您的用例,但也许 CSV 引擎可能是您正在寻找的?
从手册:
创建 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 表还会创建一个相应的 Metafile,其中存储了表的状态和表中存在的行数。此文件的名称与扩展名为 CSM 的表的名称相同。
如果您检查执行上述语句创建的数据库目录中的 test.CSV 文件,其内容应如下所示:
"1","record one"
"2","record two"
这种格式可以被 Microsoft Excel 或 StarOffice Calc 等电子表格应用程序读取,甚至写入。