W dniu 13.06.2012 13:08, Marcin napisał(a):
witam próbuje odpalić zapytanie rozliczające faktury wykorzystując daemona i moduł system. w konfiguracji ustawiam: sql = CREATE TEMPORARY TABLE tabela_tymczasowa AS SELECT customerid FROM cash WHERE time <= unix_timestamp() GROUP BY customerid HAVING SUM(value) >= 0;ALTER TABLE tabela_tymczasowa ADD UNIQUE (customerid);UPDATE documents d RIGHT JOIN tabela_tymczasowa t ON t.customerid=d.customerid SET closed = 1 WHERE type IN (1, 3, 5) AND cdate <= unix_timestamp() AND closed = 0;
próbowałem również z " ": sql = CREATE TEMPORARY TABLE tabela_tymczasowa AS SELECT customerid FROM cash WHERE time <= unix_timestamp() GROUP BY customerid HAVING SUM(value) >= 0;ALTER TABLE tabela_tymczasowa ADD UNIQUE (customerid);UPDATE documents d RIGHT JOIN tabela_tymczasowa t ON t.customerid=d.customerid SET closed = 1 WHERE type IN (1, 3, 5) AND cdate <= unix_timestamp() AND closed = 0;
ale niestety faktury się nie rozliczają. jak odpale to zapytanie bezpośrednio w sql to bez problemu są wykonywane 3 zaptyania i faktury są rozliczane.
spróbowałem rozbić te polecenia na pojedyńcze i zrobiłem 3 instancje z priorytetami 4,5,6 to zadziałało. czemu moduł system nie przyjmuje, wykonuje ciągu poleceń rozdzielonych średnikami?
Marcinku, po raz kolejny dajesz mi okazję do zjechania Mysql ;-) Zajrzyj pod adres i wszystko stanie się jasne :) http://dev.mysql.com/doc/refman/5.1/en/c-api-multiple-queries.html
Podpowiedź: w daemonie używamy funkcji C API mysql_query(), a obsługa wielu poleceń w jednym wykonaniu doszło od Mysql 5.1. Może w mysql 10.7 zrobią w końcu logowanie wszystkich zapytań w strawnej postaci...
-- Pozdrawiam Marcin / nicraM