mysql - 如何通过 R 代码设置 sql 分隔符?
问题描述
我需要通过 R 代码在 sql server 中创建一个触发器,为此我需要将我的 sql 分隔符设置为 //。我尝试执行以下操作:
dbExecute(con, "delimiter //")
dbExecute(con, "delimiter //\n")
dbExecute(con, "delimiter //\t")
我还使用其他 DBI 功能尝试了上述场景,例如
dbGetQuery
和dbSendQuery
但我收到以下错误。
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
解决方案
事实证明,为了使用 DBI 包通过 R 执行 sql 触发器,不需要设置和取消设置分隔符。我们可以直接执行触发命令。
这与通过 SQL 命令行设置触发器时需要执行的操作不同,因为触发器语法本身包含分号;
,为了避免与默认 SQL 分隔符冲突,;
我们暂时将分隔符设置为较少使用的特殊分隔符字符,例如//
带有命令,例如
delimiter //
然后恢复为默认分隔符
delimiter ;
通过 R 的 DBI 包执行触发器时不需要这样做。
推荐阅读
- java - 生成器是抽象的;无法实例化。为什么?
- python-packaging - 管理 python 依赖项以安装其他包
- javascript - Javascript Promise - 拒绝或解析数据库中的空结果
- c# - 如何使自定义按钮响应更流畅?
- angular - 在 Angular 中,是否可以在模板内部创建一个复制对象?
- amazon-web-services - docker with AWS:在 docker 容器内的哪个目录是寻找 AWS 凭证的?
- c++ - 存储 gsl::span 的 std::vector
没有按预期工作 - flutter - 如何在 Flutter 中动态生成小部件?
- android - 如何让android模拟器连接到我们服务器上的特定端口
- botframework - 有没有办法在机器人框架中垂直堆叠建议的操作?