monetdblite:是不是可以配置“monetdb_query”来运行多个语句?

Posted

技术标签:

【中文标题】monetdblite:是不是可以配置“monetdb_query”来运行多个语句?【英文标题】:monetdblite: Is it possible to configure "monetdb_query" to run multiple statements?monetdblite:是否可以配置“monetdb_query”来运行多个语句? 【发布时间】:2019-01-22 10:54:39 【问题描述】:

我正在尝试运行以下脚本

"create table T1(i int); create table T2(i int);" 

在使用 MonetDBLite C 及其“monetdb_query”API 的全新数据库中,但“monetdb_query”函数似乎只执行第一条语句。

有什么方法可以一次运行整个脚本(点逗号分隔的有效语句)(最好是在同一个事务中)?

谢谢,

【问题讨论】:

【参考方案1】:

据我所知,抱歉。不过很高兴审查 PR。主要问题是多个查询可能会产生多个结果集,这会使 API 变得非常复杂。但是,如果您所追求的只是执行并且您不关心结果,则可以通过一些小黑客来完成。尝试使用小写“s”作为最后一个参数调用monetdb_query_internal

【讨论】:

好像是不允许的。 sql_upgrades.c,第 1098 行 if (be->language !='S') msg = createException(SQL, "SQLparser", SQLSTATE(42000) "Unrecognized language prefix: %ci\n", be->language); goto finalize; 甚至在我更改代码以将条件也传递给 's' 之后,仍然无法正常工作。我想上述情况是有原因的。 错误消息Unrecognized language prefix: Li 也可能是数据库仍处于维护模式的症状。要解决此问题,请运行 monetdb release <DATABASE_NAME>,然后运行 ​​monetdb start <DATABASE_NAME>

以上是关于monetdblite:是不是可以配置“monetdb_query”来运行多个语句?的主要内容,如果未能解决你的问题,请参考以下文章

SQL 将许多 tsv 文件连接到数据库中的单个表中,同时跟踪文件源 (MonetDBLite)

Wejo加入MONET联盟,进一步推动国际移动出行创新

使用 tbl 和 src_monetdblite 访问数据

从 MonetdbLite C API 使用 monetdb_append

在 R 中的 MonetDBLite 中使用 WHERE 子句的问题

在 MonetDBLite 中使用“INSERT INTO test VALUES”加载巨大的表