Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
18.09.2020, 20:05
|
|||
---|---|---|---|
|
|||
Возможно ли разрулить такое запросом? |
|||
#18+
Есть таблица уникальных значений. К этим значениям привязаны другие значения, которые периодически меняются. Хочу сделать что-то вроде истории - т.е. отдельную таблицу, в которой можно выбрать старые значения по дате. Но для sqlite нагуглил только insert or ignore , что не подходит. Либо ON CONFLICT DO UPDATE SET , что тоже не подходит и ИМХО аналогично on duplicate key update в других бд. Мне бы что-то вроде ON CONFLICT DO INSERT INTO Но примеров не нашел, а собственные попытки выдают ошибку. Есть что-то подобное в sqlite или через программу данные таскать и сверять? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.09.2020, 20:29
|
|||
---|---|---|---|
Возможно ли разрулить такое запросом? |
|||
#18+
Это делается через специальное волшебство под названием TRIGGER. https://www.sqlite.org/lang_createtrigger.html Создаешь триггер на основной таблице, он будет вызываться автоматически когда ты меняешь эту основную таблицу. А внутри уже делаешь копию изменений в таблицу истории. Что-то в духе Код: sql 1. 2. 3. 4.
Псевдо таблицы OLD и NEW создаются и уничтожаются автоматически и существуют на время работы триггера. Содержат соответственно старые и новые знания всех изменяемых строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=54&tablet=1&tid=2008350]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 292ms |
total: | 412ms |
0 / 0 |