Как сделать скрипт для выполнения sql запроса каждые 3 секунды на неопределенное время UBUNTU 18.04 - PullRequest
0 голосов
/ 23 февраля 2020

Я хочу написать php скрипт для автоматического выполнения запроса sql каждые 3 секунды до тех пор, пока я его не остановлю. это мой sql запрос, который я хочу выполнить

UPDATE users SET bouquet =
  '["12","10","11","8","9","6","7","5","4","3","2","1"]'

Имя базы данных: xtream_iptvpro

Извините, я новичок, поэтому я действительно ничего не знаю. Спасибо за вашу помощь

Ответы [ 2 ]

1 голос
/ 23 февраля 2020

Если вы периодически «исправляете» какой-либо столбец таблицы, то в течение некоторого времени столбцы будут содержать неверные данные. Вы, вероятно, не хотите этого.

Вместо этого, я думаю, что триггер будет лучше, так как он будет "исправлять" данные на лету при вставке / обновлении. Таблица никогда не будет содержать неправильные данные для начала.

См. 24.3.1 Синтаксис триггера и примеры .

Например (настроить при необходимости):

create table users (id int, bouquet varchar(100));

create trigger fix_data before insert on users 
for each row 
begin
  set NEW.bouquet = '["12","10","11","8","9","6","7","5","4","3","2","1"]';
end;

Тогда, если вы выполните следующие INSERT операторы:

insert into users (id, bouquet) values (1, 'Hello');
insert into users (id) values (2);
insert into users (id, bouquet) values (3, null);
insert into users (id, bouquet) values (4,
  '["12","10","11","8","9","6","7","5","4","3","2","1"]');

select * from users;

Вы получите результат:

id  bouquet                                           
--  ----------------------------------------------------
1   ["12","10","11","8","9","6","7","5","4","3","2","1"]
2   ["12","10","11","8","9","6","7","5","4","3","2","1"]
3   ["12","10","11","8","9","6","7","5","4","3","2","1"]
4   ["12","10","11","8","9","6","7","5","4","3","2","1"]
1 голос
/ 23 февраля 2020

Вы должны использовать любой cli или какую-либо другую технологию для продолжения.

например, если это mysql, вы можете использовать PHP, java или вы можете построить его с помощью консольной команды.

while true; do echo -n "execute your query here"; sleep 3; done

while true; do mysql -u root -p somedb -e "select * from mytable"; sleep 3; done

Это решение может помочь вам

...