Мне нужно автоматически вставить строку в таблицу статистики, которая идентифицируется номером месяца, если новый месяц не существует в виде строки.sqlite3 триггер для автоматической записи новой записи месяца
«карта» представляет собой текущий счет индивидуальных идентификаторов, которая хранит текущее значение (получает сброс во время одновременного нажатия клавиша), счетчик опрокидывания и текущей сумму всех событий на это ID
статистику сохраняет текущий счет всех событий ID и количества опрокидывания в данном месяце.
CREATE TABLE IDS (ID_Num VARCHAR(30), Curr_Count INT, Rollover_Count INT, Total_Count INT);
CREATE TABLE stats(Month char(10), HitCount int, RolloverCount int);
CREATE TRIGGER update_Tstats BEFORE UPDATE OF Total_Count ON IDS
WHEN 0=(SELECT HitCount from stats WHERE Month = strftime('%m','now'))
(также попробовал «IS NULL» на другом конце КОГДА п ... до сих пор не радость)
BEGIN
INSERT INTO stats (Month, HitCount, RolloverCount) VALUES (strftime('%m', 'now'),0,0);
END;
Я он работает до точки, но, как опрокидывание было обновляется два раза за цикл (значение изменилось вверх и вниз с помощью SQL-запроса, который у меня есть в скрипте python), он дал мне двойные значения в счете опроса статистики. Итак, теперь я запускаю двойной запрос в моем скрипте. Однако все это падает, если текущий номер месяца не существует в таблице статистики.
Все, что мне нужно сделать, это проверить, существует ли пустая запись для текущего месяца для выполнения запросов UPDATE для скрипта python, а если нет, INSERT. Сам сценарий не может выполнить запрос типа «запускать один раз» при первом запуске, поскольку он может работать в течение нескольких дней, включая переход на новый месяц.
Любая помощь была бы чрезвычайно оценена.
Вы знаете, как иногда вы хотите так трудно на проблему и не может увидеть ответ прямо перед вашим лицом? Это как-раз тот случай! Именно то, что я почти ответил в своем собственном вопросе ... Спасибо CL за ваш быстрый ответ :-) – justcheckinm8