У меня есть таблица списков со следующими столбцами
lists:
- id
- category_id
- name
- sort_order
При добавлении новой строки в таблицу я хочу установить значение порядка сортировки на самое высокое значение порядка сортировки + 1, где category_idтакой же, как и у новой строки category_id.Есть ли способ добиться этого?
ОБНОВЛЕНИЕ Итак, с рекомендацией по созданию триггера вставки я попытался это
CREATE FUNCTION set_list_sort_order()
RETURNS trigger AS $$
BEGIN
NEW.sort_order := select (select sort_order from lists where category_id = NEW.category_id order by sort_order DESC limit 1) + 1
RETURN NEW;
END
$$ LANGUAGE 'plpgsql';
CREATE TRIGGER set_list_sort_order_trigger
BEFORE INSERT ON lists
FOR EACH ROW
EXECUTE PROCEDURE set_list_sort_order()
Но яполучить эту ошибку:
ERROR: syntax error at or near "select"
LINE 4: NEW.sort_order := select (select sort_order from lists w...