多个 SQL 查询不适用于 DBeaver 上的分隔符
Posted
技术标签:
【中文标题】多个 SQL 查询不适用于 DBeaver 上的分隔符【英文标题】:Multiple SQL query not working with delimiter on DBeaver 【发布时间】:2020-09-11 16:00:46 【问题描述】:使用分隔符(默认“;”)时无法执行 mysql 语句。我的意思是,当我运行如下查询时:
select * from mdw.dim_date dd limit 10;
select * from mdw.dim_order do limit 5;
我遇到了这样的错误:
SQL 错误 [1064] [42000]:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“select * from mdw.dim_order do limit 5”附近使用正确的语法
我不想按 Alt+X 执行此操作(我正在使用 Dbeaver),因为我想将查询放入 pentaho。我需要执行大约 50 次删除,所以我不想将它划分为 50 个 SQL 脚本。
我正在使用 MySQL(版本:5.6.36-82.0)。
【问题讨论】:
大多数数据库 API 一次只允许执行一个查询。 所以不清楚你在这里实际问的是什么。你说你想删除某些东西,但你给我们看一个失败的 SELECT? 嗨里格斯。选择只是例如这是什么样的错误。我有大约 50 个这样的删除语句: DELETE from mpanel.alias where alias_created 【参考方案1】:您需要点击 DBeaver 上的“执行脚本”选项
如果你点击播放按钮,它会告诉你那个错误。
【讨论】:
感谢您的回复,但关键是 Pentaho 中没有这样的选项(正如我在帖子中提到的 - 我需要在 Pentaho 中的“执行 SQL 脚本”中执行它,我得到同样的错误) . 我认为应该是类似的,看pentaho的文档,它要求行必须用分号分隔。,也许只是选择正确的选项,或者也许你有一个选择类似“作为单个语句执行”help.pentaho.com/Documentation/8.2/Products/Data_Integration/… 的选项 不,选择了任何选项(但我尝试了一切 - 只是为了确定)。我的查询是大约 50 次删除,所有这些都以分号结尾。 不确定,但也许可以将指令“DELIMITER ;”放在脚本的开头强制它,只是想给出一些想法。 是的,也试过了。我还尝试使用不同的字符('$' 和 '$$')来确保,但没有帮助。无论如何,感谢您的宝贵时间。【参考方案2】:如果您使用的是 Dbeaver,您可以选择您的脚本并按 ALT+X
以下错误和正确的方式
【讨论】:
一直在找这个,谢谢【参考方案3】:问题解决了。不知道发生了什么,但现在还好。我猜编码可能会改变(在 Dbeaver 中是否有类似编码的东西?),我不知道,但它正在工作。
【讨论】:
【参考方案4】:delimiter 关键字前不能有空格(我认为是 dbeaver 错误)
【讨论】:
这不是问题的答案 如果你在 delimiter 关键字之前删除空格它可以工作,我认为这是一个答案以上是关于多个 SQL 查询不适用于 DBeaver 上的分隔符的主要内容,如果未能解决你的问题,请参考以下文章