PostgreSQL有外部表的概念,可以使用CSV文件作为表源.在MySQL中有办法做到这一点吗?在我的例子中,我不想导入文件,因为它每分钟都会更改(通过crontabb重写).

CREATE FOREIGN TABLE IF NOT EXISTS rawdata.system_ps (
  pid text,
  started text,
  cpu_pcnt text,
  mem_pcnt text,
  command text
) 
SERVER "import" options (
  FILENAME '/var/tmp/system_ps.csv',
  FORMAT 'csv',
  HEADER 'true'
);

推荐答案

MySQL支持CSV存储引擎.手册中有这样的描述:https://dev.mysql.com/doc/refman/8.0/en/csv-storage-engine.html

语法与您显示的示例不同.不能指定文件名或路径.它必须在数据目录中,并且必须在与表名匹配的文件中.您的外部cron进程必须能够访问该文件.

但是它满足了在每次查询时从CSV文件读取数据的要求,因此如果外部进程更新了文件,则下一个SQL查询将读取更新后的数据.CSV文件不会导入到MySQL中的其他存储引擎.

有关更多详细信息,请阅读我链接的手册页面.

Mysql相关问答推荐

MySQL在带有特定属性值上的对象的数组的杨森对象中搜索

MySQL 8.0.28覆盖(和函数)索引未使用

MySQL问题难以将文本字符串转换为正确的日期格式

SQL:创建新列并将现有表中的值追加到新创建的列中

如何防止程序中计数器出错

不分组寻呼

版本升级到5.0.0后在QueryDSL中使用Enum时出错

使用Check查看过go 两个月是否完成了IRM Meetup

如何在sql中包含0作为计数?

MySQL - 密码哈希没有预期的格式

为什么Mysql会根据查询参数改变查询执行计划?

过滤值为0时如何在MySQL查询中设置条件?

我在查询中没有得到正确的结果

在 MySQL 中为多列创建索引以进行查询优化

如何根据特定条件从mysql数据库中 Select 查询

如何在 Windows 上访问 xampp 的命令行

用于国际和多语言目的的数据库建模

mysql 按日期 Select 总和组

重新加载 .env 变量而不重新启动服务器(Laravel 5,共享主机)

MySQL 在每个唯一值第一次出现时 Select 行