|
Триггер для SQLite, устанавливающий следующее после максимального число
|
|||
---|---|---|---|
#18+
Никак не могу написать для SQLite триггер, который бы срабатывал после вставки данных (AFTER INSERT), и вставлял в поле с именем sort_order максимальное значение этого же поля + 1. Скорость срабатывания неважна. Пытаюсь написать так: Код: sql 1. 2. 3. 4. 5.
Но не работает. При добавлении записи, в Firefox SQLite Manager вижу ошибку: Код: sql 1. 2.
Вопрос. Как сделать триггер, который бы (при создании записи) вычислял для поля максимальное значение, и записывал в новую запись в это поле следующее после максимального число. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2015, 19:10 |
|
Триггер для SQLite, устанавливающий следующее после максимального число
|
|||
---|---|---|---|
#18+
1) Убери кавычки вокруг имени таблицы и скобки вокруг имени триггера. 2) Оператор IN в даном случае бессмысленнен. max() уже вернет одно единственное значение, а значит и сравнивать можно через = 3) данный триггер не будет работать на пустой таблице 4) У тебя очень странная структура таблицы. Есть поле ID для которого может выполняться max(), это значит что ты уже можешь сортировать по ID. И при этом ты делаешь еще второе поле sort_order по которому собираешсья сортировать. Вывод: смысла в данном триггере - ноль целых, ноль десятых. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2015, 23:16 |
|
|
start [/forum/topic.php?fid=54&fpage=9&tid=2008645]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 231ms |
total: | 398ms |
0 / 0 |