Wpis z mikrobloga

Mirasy mam pytanie

Kod eventu:

START TRANSACTION;
INSERT INTO t_hs SELECT * FROM t_backup WHERE ACTION='api' AND updated_on < NOW() - INTERVAL 2500 DAY;
DELETE FROM tokens_backup WHERE ACTION='api' AND updated_on < NOW() - INTERVAL 2500 DAY;
COMMIT;

Na bazie MariaDB chce dodac EVENT. Gdy dodaje go przez opcje w HeidiSQL przez opcje Create New > Event wszystko śmiga. IDE buduje zapytanie:

CREATE EVENT apideleter
ON SCHEDULE
EVERY 1 DAY STARTS '2021-03-12 15:20:00'
ON COMPLETION NOT PRESERVE
ENABLE
COMMENT 'Api deleter keys'
DO BEGIN
START TRANSACTION;
INSERT INTO t_hs SELECT * FROM t_backup WHERE ACTION='api' AND updated_on < NOW() - INTERVAL 2500 DAY;
DELETE FROM tokens_backup WHERE ACTION='api' AND updated_on < NOW() - INTERVAL 2500 DAY;
COMMIT;
END

i wszytsko śmiga

natomiast jeśli to samo zapytanie chce wykonać bezpośrednio jako SQL to dostaje błąd:

Error SQL (1064): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 8
Jakieś pomysły?

#bazydanych #sql #mysql #mariadb
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@kill-9: dżii.. myślałem, że do tego czasu już doczytałeś w necie ¯\_(ツ)_/¯

Zapytanie w mysql wykonywane jest od początku do jego końca. Koniec zapytania jest domyślnie oznaczany średnikiem ;

To oznacza, że u Ciebie zapytanie leci od CREATE event ..... do .... START TRANSACTION;
Wszystko za tym jest śmieciami i
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
Doczytałem później bo zająłem się inną pracą. Dzięki w każdym razie za pomoc.
  • Odpowiedz