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 更改分隔符的主要内容,如果未能解决你的问题,请参考以下文章