Как заставить редактор данных PhpStorm распознавать DELIMITER \\
?
Сценарий: у меня открыта консоль, и я хочу создать функцию, в которой у меня есть ;
, определенный в функции.
При выполнении функция create не работает в первой строке, где существует ;
.
Запрос такой
DELIMITER //
create function blah (datablah varchar(200)) returns tinyint(1)
BEGIN
Return tinyintVar;
END //
DELIMITER ;
Эта функция работает так, как задумано, так как она находится в производстве, и я хочу скопировать ее в базу данных разработчика. Вот почему я знаю, что ошибка связана с разделителем.
Но это не первый раз, когда я пытаюсь сделать это в открытой консоли с другой функцией. При выполнении этого встроенного SQL в консоли редактора данных он просто не обнаруживает и не подтверждает ключевое слово DELIMITER
. Даже если я просто запустил с Ctrl + Enter в строке с DELIMITER \\
, я получаю сообщение «нечего запускать».
Примечание: это сработает, если у меня есть .sql
файл, и я просто выполняю его. Но текущий рабочий процесс состоит в том, чтобы выделить функцию из живой БД, открыть редактор для просмотра кода функции создания, а затем скопировать + вставить в открытое окно консоли, которое я в настоящее время открыто.
Итак, единственный способ распознать 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 ;
) и выполнить выбор? Здесь были бы очень полезны скриншоты (или лучше скринкаст). - person LazyOne   schedule 05.09.2018