Триггер для SQLite, устанавливающий следующее после максимального число

xintrea

Новичок
Никак не могу написать для SQLite триггер, который бы срабатывал после вставки данных (AFTER INSERT), и вставлял в поле с именем sort_order максимальное значение этого же поля + 1. Скорость срабатывания неважна.

Пытаюсь написать так:

Код:
CREATE TRIGGER [responses_sort_order]
AFTER INSERT ON "responses"
BEGIN
 UPDATE responses SET sort_order=max(sort_order)+1 WHERE id IN (select max(id) from responses);
END
Но не работает. При добавлении записи, в Firefox SQLite Manager вижу ошибку:

Код:
Exception Name: NS_ERROR_FAILURE
Exception Message: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE)
Вопрос. Как сделать триггер, который бы (при создании записи) вычислял для поля максимальное значение, и записывал в новую запись в это поле следующее после максимального число.
 

WMix

герр M:)ller
Партнер клуба
я посоветывал бы BEFORE INSERT и просто установить new.sort_order
 

xintrea

Новичок
я посоветывал бы BEFORE INSERT и просто установить new.sort_order
А new.sort_order точно всегда будет больше остальных значений в поле sort_order?

Полю sort_order надо задать какой-то определенный тип?
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
никто не запрещал выборку сделать но вот после insert обновлять мне знания мешают
 
Сверху