У меня есть таблица pg, как это:
CREATE TABLE order_status_history (
order_id integer NOT NULL,
status character varying NOT NULL,
sequence integer DEFAULT 1 NOT NULL,
date_status timestamp with time zone DEFAULT now() NOT NULL,
record_state character varying(12) DEFAULT 'ACTIVE'::character varying NOT NULL
);
с составным PK на order_id и sequence.По сути, столбец состояния представляет собой значение автоинкремента, начинающееся с 1, для каждого отдельного идентификатора заказа.Итак, если order_id 2 уже имеет две строки, последовательности будут 1 и 2, а для новой строки последовательность должна быть 3. Я пытаюсь использовать триггер для реализации этого поведения перед вставкой, но когда я пытаюсьвставить первую строку для нового order_id (то есть триггер не должен изменять строку до вставки), я получаю сообщение об ошибке для PG.говоря, что он не может вставить NULL в последовательность.Я не вижу, как моя функция триггера будет возвращать NULL, но мой pl / sql не очень хорош, поэтому я уверен, что это что-то простое ... Функция триггера ниже, спасибо.