@anarbus в глобальной переменной укажите время окончания работы, и пусть каждый поток периодически проверяет, не вышло ли это время, если вышло - завершить работу. А в асинхронной функции можно установить жесткий останов скрипта, если время превышено вдвое, например. Хотя, если всё отлажено, то асинхронка и не нужна.
Как в SQL сделать сразу несколько запросов в одном действии
-
Пишу вот так(в кубике выполнить запрос):
SELECT * FROMKUKILIMIT 1;
DELETE FROMKUKILIMIT 1В phpmyadmin этот запрос прекрасно проходит, но БАС ругается и даёт ошибку:
SequelizeDatabaseError: 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 'DELETE FROMKUKILIMIT 1' at line 2
(каждая строка по отдельности в БАСе работает)Не могу понять, что я делаю не так, подскажите пожалуйста.
-
; в конце второй строки поставь
И не понятно что ты хочешь удалить, если все - то лимит не нужен. А если одну, то какую ? -
@Bigma said in Как в SQL сделать сразу несколько запросов в одном действии:
DELETE * FROM KUKI LIMIT 1;
та же ошибка, там не проблема в запросе - второй можно любую строчку вставить, хоть ту что сейчас первая стоит - он даст ошибку
https://prnt.sc/1zgfpag
может я где то что то упускаю? -
@Shogo said in Как в SQL сделать сразу несколько запросов в одном действии:
@Bigma
SELECT * FROMKUKILIMIT 1;
DELETE FROM KUKI LIMIT 1;
тоже самое даёт.Я хочу взять первую попавшуюся, и удалить её же. phpmyadmin-ну всё понятно, а басу что то нет (
Удалится не обязательно та строка, что в запросе select. А вообще непредсказуемые данные. Как минимум потому что нет
ORDER BYи mysql сам решит как сортировать, точнее никак он не будет этого делать. И если между двумя запросами еще и будет вставка, то весьма вероятно удалится другая строка.
ПопробуйDELETE FROM KUKI LIMIT 1 RETURNING *. Насколько я помню, это может поддерживаться НЕ у всех реализаций Mysql.
https://mariadb.com/kb/en/delete/#examples -
@Shogo said in Как в SQL сделать сразу несколько запросов в одном действии:
@UserTrue то есть несколько строк указать нельзя?
Я не знаю точно, не использовал этот модуль. Можете почитать доку по Sequelize, но мне кажется в ней нет таких запросов
-
@Shogo тебе проще задать вопрос @Ghost ту в теме модуля https://community.bablosoft.com/topic/14993/sql
Еще раз, нажми на вопросик в этом поле - увидишь, что модуль спроектирован так - что каждую новую строку он воспринимает как часть запроса. Кроме того включи режим отладки и посмотри какой запрос в итоге формируется.
-
@Bigma то есть если сделать 2 действия выполнить запрос, и туда вбить по очереди:
- SELECT * FROM
KUKILIMIT 1;
а во второе - DELETE FROM KUKI LIMIT 1;
Вот как это выглядит: https://prnt.sc/1zl2lps
То всё работает, без каких либо проблем.
А вот если эти две строки вбить в одно действие(https://prnt.sc/1zl2pwm) - то даёт ошибку:
[917526596] [22:50:32] Поток №1 : SequelizeDatabaseError: 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 'DELETE FROM KUKI LIMIT 1' at line 2Я не понимаю, что я один на всём форуме попытался два запроса сразу впихнуть? )
- SELECT * FROM
-
Вы отладку sql включили? Кроме вас ваши скриншоты никто не видит, загрузите или на форум или в паблик источник
-

