|
Зачем придумали DELIMITER?
|
|||
---|---|---|---|
#18+
Вот уже в который раз напарываюсь что без него не работает скрипт. Зачем придумали этот костыль, который мне теперь придется прописать во всех файлах проекта?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 08:04 |
|
Зачем придумали DELIMITER?
|
|||
---|---|---|---|
#18+
stanilar, По-умолчанию точка с запятой выполняет две роли - разделитель(терминатор) команд консольного клиента mysql и разделитель(терминатор) SQL-команд в составных командах (применяются в хранимых процедурах, функциях, триггерах). В тех случаях, когда нельзя однозначно понять роль точки с запятой, приходится разделитель(терминатор) команд консольного клиента mysql переназначать на другой символ или комбинацию символов. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 12:15 |
|
Зачем придумали DELIMITER?
|
|||
---|---|---|---|
#18+
miksoft, Это понятно, но вот мне не очевидно, что синтаксис консольного клиента нельзя отличить от синтаксиса составных команд. Вроде если пишется составная команда, то там есть синтаксическое дерево, в котором очевидным образом все имеет иерархию, и ошибиться с назначением команды очень сложно. Т.е. проблемы была именно в консольном клиенте, в котором каждую строчку ввода надо отправлять построчно. Но это тогда DELIMITER это попытка прикрыть несовершенство средств администрирования путем костыля синтаксиса. Неужели проблему нельзя было решить путем написание более совершенного клиента? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 14:16 |
|
Зачем придумали DELIMITER?
|
|||
---|---|---|---|
#18+
stanilar Неужели проблему нельзя было решить путем написание более совершенного клиента? Загнать в него целый парсер SQL? Теоретически можно, но это жёстко привяжет клиента к версии сервера, что никому не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 15:02 |
|
Зачем придумали DELIMITER?
|
|||
---|---|---|---|
#18+
stanilar там есть синтаксическое дерево, в котором очевидным образом все имеет иерархию ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 15:15 |
|
Зачем придумали DELIMITER?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Загнать в него целый парсер SQL? Вроде задача клиента - отправить текст и получить сообщение о выполнении. На сервере уже есть парсер. Как бы вся проблема получается в том, что есть клиенты в котором на сервер текст отправляется построчно. Но вроде эта проблема уже решена всеми консольными клиентами? Грубо говоря сейчас уже все клиенты, могут отправлять текст не построчно, а сразу целиком? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 15:21 |
|
Зачем придумали DELIMITER?
|
|||
---|---|---|---|
#18+
miksoft Это если введенный текст не содержит ошибок. А если разработчик напутал с парностью BEGIN ... END ? Cервер вернет сообщениt об ошибке. Зачем серверу знать о том, что есть DELIMITER? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 15:22 |
|
Зачем придумали DELIMITER?
|
|||
---|---|---|---|
#18+
stanilar miksoft Это если введенный текст не содержит ошибок. А если разработчик напутал с парностью BEGIN ... END ? Cервер вернет сообщениt об ошибке. Зачем серверу знать о том, что есть DELIMITER? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 15:25 |
|
Зачем придумали DELIMITER?
|
|||
---|---|---|---|
#18+
stanilar Вот уже в который раз напарываюсь что без него не работает скрипт. Зачем придумали этот костыль, который мне теперь придется прописать во всех файлах проекта?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 15:53 |
|
Зачем придумали DELIMITER?
|
|||
---|---|---|---|
#18+
Alex_Ustinov может один раз после коннекта сделать?) Ну вот что-то типа такого и было сделано, потому что проект ~ 100 процедур и ни одна раньше не требовала никакого DELIMITER. Но проект полежал на полке пол года - т опять какая-то фигня... Причем не помню как настраивается. Либо из Heidi, либо в параметрах сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 18:42 |
|
Зачем придумали DELIMITER?
|
|||
---|---|---|---|
#18+
miksoft Ну вот вводит пользователь код, нажимает ENTER, вводит еще, нажимает ENTER Ну вот о том и речь что синтаксис приивязан к кривому клиенту, который не понимает что есть возможность многострочного ввода. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 18:43 |
|
Зачем придумали DELIMITER?
|
|||
---|---|---|---|
#18+
stanilar синтаксис приивязан к кривому клиенту stanilar который не понимает что есть возможность многострочного ввода. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 19:43 |
|
Зачем придумали DELIMITER?
|
|||
---|---|---|---|
#18+
stanilar Но вроде эта проблема уже решена всеми консольными клиентами? Да, решена. И решение, внезапно, DELIMITER. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2020, 13:18 |
|
Зачем придумали DELIMITER?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Да, решена. И решение, внезапно, DELIMITER. DELIMITER это не команда консольного клиента. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 11:23 |
|
Зачем придумали DELIMITER?
|
|||
---|---|---|---|
#18+
stanilar Dimitry Sibiryakov Да, решена. И решение, внезапно, DELIMITER. DELIMITER это не команда консольного клиента. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 16:46 |
|
|
start [/forum/topic.php?fid=47&msg=39941903&tid=1828668]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
129ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 291ms |
total: | 513ms |
0 / 0 |