|
Странное поведение запроса в хранимой процедуре.
|
|||
---|---|---|---|
#18+
Всем мир! Имею такой запрос на удаление. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Отрабатывает долго (много записей на удаление), но все работает. Помещаю такой запрос в хранимую процедуру, и трутся вообще все записи. Полностью. Никак не могу понять причину. Такое ощущение что или каких то кешей не хватает, или ограничение на вложенность. Ошибок нет, просто пустая таблица на выходе. Может кто сталкивался с подобным? Вот текст процедуры: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2020, 16:56 |
|
Странное поведение запроса в хранимой процедуре.
|
|||
---|---|---|---|
#18+
demwf Имею такой запрос на удаление. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
А чё так замудрёно-то? почему не просто Код: sql 1. 2. 3. 4. 5.
? demwf Может кто сталкивался с подобным? Не бывает. Либо запрос (в т.ч. вызывающий выполнение процедуры) выполняется корректно, либо приводит к ошибке (в т.ч. и внешней, в т.ч. приводящей к повреждению - но всегда детектируемому!- данных). Впрочем, корректное выполнение не означает получение результата, который ты ХОТЕЛ получить - он будет таким, какой ты ПРОСИЛ, а это не всегда одно и то же. Дамп для воспроизведения проблемы либо ссылку на fiddle - в студию. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2020, 18:04 |
|
Странное поведение запроса в хранимой процедуре.
|
|||
---|---|---|---|
#18+
Какой-то странный синтаксис для функции DATE_ADD. А если это им поля, тогда при нем обратных кавычек не хватает. Ну и два уровня вложенности запроса тут лишние, условие WHERE вплне перенести в основной запрос, тогда быстрее заработает. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2020, 18:08 |
|
Странное поведение запроса в хранимой процедуре.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2020, 18:44 |
|
Странное поведение запроса в хранимой процедуре.
|
|||
---|---|---|---|
#18+
1. vkle Какой-то странный синтаксис для функции DATE_ADD. А если это им поля, тогда при нем обратных кавычек не хватает. Да это имя поля. Синтаксис позволяет, ошибки и предупреждения не генерируются. 2. vkle Ну и два уровня вложенности запроса тут лишние, условие WHERE вплне перенести в основной запрос, тогда быстрее заработает. То что можно обойтись вообще без подзапросов - факт! Но надо именно с подзапросом, потому что пример сильно упрощен, в процессе поиска аномалии. То что 2 уровня вложенности - это не ошибка. Если сделать 1 уровень вложенности, будет ошибка. Вторым уровнем, я просто фактически создаю копию таблицы под названием cl Вот ссылка на доку - https://sqlinfo.ru/articles/info/19.html ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2020, 18:49 |
|
Странное поведение запроса в хранимой процедуре.
|
|||
---|---|---|---|
#18+
demwf Дамп таблицы Я просил дамп для воспроизведения проблемы, а не полгига никак не связанных с проблемой данных... Если проблема есть - для её воспроизведения достаточно десятка записей с входящими в запрос полями. demwf надо именно с подзапросом, потому что пример сильно упрощен, в процессе поиска аномалии. То есть Вы совершаете обычную ошибку - публикуете не проблему, а свои попытки её решить. demwf Вот ссылка на доку Это НЕ ссылка на доку. Доки - это то, что расположено на dev.mysql.com, а всё остальное - лишь размышления поверх. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2020, 19:46 |
|
Странное поведение запроса в хранимой процедуре.
|
|||
---|---|---|---|
#18+
Akina Я просил дамп для воспроизведения проблемы Дамп за 10 дней. Можно попробовать например за 01.01.2019 https://yadi.sk/d/thzI9UoNjR6Ieg Akina То есть Вы совершаете обычную ошибку - публикуете не проблему, а свои попытки её решить. Здесь находиться именно проблема, в этом можно убедиться самостоятельно. Дамп БД и скрипт я предоставил. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2020, 06:47 |
|
Странное поведение запроса в хранимой процедуре.
|
|||
---|---|---|---|
#18+
demwf Код: sql 1.
Если только дата, то вы, помимо 2019 года, еще удалите данные за 1 января 2020 года. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2020, 10:29 |
|
Странное поведение запроса в хранимой процедуре.
|
|||
---|---|---|---|
#18+
demwf Помещаю такой запрос в хранимую процедуру, и трутся вообще все записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2020, 10:31 |
|
Странное поведение запроса в хранимой процедуре.
|
|||
---|---|---|---|
#18+
demwf, Какая у вас версия MySQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2020, 10:43 |
|
Странное поведение запроса в хранимой процедуре.
|
|||
---|---|---|---|
#18+
miksoft В начале ответы miksoft В DATE_ADD только дата или дата-время? Если только дата, то вы, помимо 2019 года, еще удалите данные за 1 января 2020 года. Там дата-время, но период несущественен. Это пример. miksoft Замените в самом начале запроса слово DELETE на SELECT * или SELECT COUNT(*) и проверьте какие записи попадают на удаление. Проверил, параллельно с твоим вопросом. Возвращается 0. Почему и вопросы опишу ниже. miksoft Какая у вас версия MySQL? mysql Ver 14.14 Distrib 5.6.38, for Win32 (AMD64) Теперь что обнаружил. Очень странно обрабатывается именно поле date_add. По крайней мере для меня. Например. Вот такой запрос - Возвращает какое-то количество записей в таблице: Код: sql 1. 2. 3.
А вот такой запрос, уже возвращает 0. Код: sql 1. 2. 3. 4.
Разница, что добавилось последнее условие. Забегу вперед и скажу, что записи с условием conversion_price_main = 0 точно есть. Раз понятно, что проблема с датой, добавил функцию date() во второй вариант, который ранее возвращал 0 Код: sql 1. 2. 3. 4.
И возвращаются опять значение. Но уже отличное от первого варианта (спишем на лишние сутки из-за часов, хотя разбег слишком значительный. Вероятно первый вариант не верный). Понятно что именно последний вариант верный, хотя уже сомнения и по этому поводу. Но у меня ряд вопросов. 1. Почему добавление дополнительного условия (без использования date), возвращает 0? 2. Почему все таки чистилась вся таблица? Ведь id из этой же таблицы, не мог равняться конкретным значениям? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2020, 13:03 |
|
Странное поведение запроса в хранимой процедуре.
|
|||
---|---|---|---|
#18+
demwf 1. Почему добавление дополнительного условия (без использования date), возвращает 0? По этому вопросу в принципе мне ясно. На конкретную дату и конкретное время нет таких условий. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2020, 13:50 |
|
|
start [/forum/topic.php?fid=47&fpage=22&tid=1828591]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 153ms |
0 / 0 |