【问题标题】:How do I set sql delimiter through R code?如何通过 R 代码设置 sql 分隔符?
【发布时间】:2019-12-19 11:44:03
【问题描述】:

我需要通过 R 代码在 sql server 中创建一个触发器,为此我需要将我的 sql 分隔符设置为 //。 我尝试执行以下操作:

dbExecute(con, "delimiter //")

dbExecute(con, "delimiter //\n")

dbExecute(con, "delimiter //\t")

我还尝试了上述场景与其他 DBI 功能,如

dbGetQuerydbSendQuery

但我收到以下错误。

could not run statement: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'delimiter //' at line 1

【问题讨论】:

  • 什么是“SQL 分隔符”?你能把你的例子说得更具体一点吗?
  • @krlmlr 我的意思如本文所示。 stackoverflow.com/questions/1346637/…
  • 你用什么包来访问MySQL?
  • 我正在使用 DBI。
  • 你的dbConnect() 电话是什么样的?

标签: mysql r r-dbi


【解决方案1】:

事实证明,为了使用 DBI 包通过 R 执行 sql 触发器,不需要设置和取消设置分隔符。我们可以直接执行触发命令。

这与通过 SQL 命令行设置触发器时需要执行的操作不同,因为触发器语法本身包含一个分号 ;,为了避免与同样为 ; 的默认 SQL 分隔符冲突,我们使用诸如

之类的命令临时将分隔符设置为较少使用的特殊字符,例如 //

delimiter //

然后使用

恢复为默认分隔符

delimiter ;

通过R的DBI包执行trigger时不需要做。

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 2016-01-16
    • 2021-06-14
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    相关资源
    最近更新 更多