PhpStorm 数据编辑器控制台窗口中的 MySQL 更改分隔符

Posted

技术标签:

【中文标题】PhpStorm 数据编辑器控制台窗口中的 MySQL 更改分隔符【英文标题】:MySQL change delimiter in PhpStorm data editor console window 【发布时间】:2018-09-05 11:23:52 【问题描述】:

如何让 phpStorm 数据编辑器识别DELIMITER \\

场景:我打开了一个控制台,我想创建一个函数,其中我在函数中定义了;

执行时,函数创建在; 所在的第一行失败。

查询是这样的

DELIMITER //
create function blah (datablah varchar(200)) returns tinyint(1)
  BEGIN
   Return tinyintVar;
  END //
DELIMITER ;

此功能在生产中也可以正常工作,我想将其复制到开发数据库中。这就是为什么我知道错误是由于分隔符造成的。

但这不是我第一次尝试在具有其他功能的开放控制台中执行此操作。在数据编辑器控制台中执行此 SQL 内联时,它只是不检测或确认 DELIMITER 关键字。即使我只是在 DELIMITER \\ 行上使用 Ctrl + Enter 运行,我也会收到消息“没有运行”。

注意:如果我有一个.sql 文件并且我只是执行该文件,这将起作用。但目前的工作流程是从 live DB 中突出显示函数,打开编辑器查看创建函数代码,然后复制 + 粘贴到我当前打开的打开控制台窗口中。

那么,识别DELIMIER 的唯一方法是执行.sql 文件吗?

PhpStorm 2018.2.2

错误是

[2018-09-05 12:07:33] [42000][1064] 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 '(19), endPeriod DATETIME(19)) returns tinyint(1)
[2018-09-05 12:07:33] BEGIN
[2018-09-05 12:07:33] DECLARE live BOOLEA' at line 1

截图

从屏幕截图中,您会注意到执行组没有在分隔符关键字周围放置绿色框。这就是为什么我认为它无法识别关键字。

【问题讨论】:

在这里运行良好。请附上您如何运行此程序的屏幕截图以及您遇到的错误 您是否尝试过选择整个命令(从DELIMITER //DELIMITER ;)并执行选择?截图(或更好的截屏视频)在这里会很有帮助。 @LazyOne 是的,我有,这就是我执行所有命令的方式,因为我打开的控制台窗口基本上是大量 SQL 语句的暂存器,所以我必须明确要执行哪个命令. 如果数据源属性,您是否在选项选项卡中启用了 Introspect Using JDBC metadata on?如果是,请关闭它 DELIMETER 是命令行语句,故意超出范围。为什么你认为这段代码真的有效? 【参考方案1】:

由于有实现它的功能请求,我会说它不受支持。

DBE-2968:Ability to configure SQL Statement delimiter/terminator

【讨论】:

以上是关于PhpStorm 数据编辑器控制台窗口中的 MySQL 更改分隔符的主要内容,如果未能解决你的问题,请参考以下文章

在phpstorm中,如何切换回默认的颜色主题外观?

phpstorm怎么添加码云的版本控制器

phpstorm 快捷方式

如何避免PhpStorm中的几个流浪服务器的“传入连接”弹出窗口

PhpStorm中terminal窗口字体修改

phpstorm的编辑代码页面怎么关闭右边这部分