У меня проблемы с созданием инкрементного триггера для каждой строки в таблице.Что мне нужно, это нумеровать строки в зависимости от одного из столбцов.Например:
table
column1|column2
1 | 1
1 | 2
2 | 1
1 | 3
3 | 1
2 | 2
Я создал последовательность:
CREATE SEQUENCE inc_seq
MINVALUE 1
START WITH 1
INCREMENT BY 1;
И триггер:
CREATE OR REPLACE TRIGGER inc_on_insert
BEFORE INSERT ON table
FOR EACH ROW
BEGIN
SELECT inc_seq.nextval
INTO :new.column2
FROM dual;
END;
То, что я сейчас получаю, это значения увеличиваются, но приращение продолжаетсядля каждой строки и до сброса.Я понятия не имею, как создать оператор, чтобы начать с 1 на каждое другое значение для столбца 1.
Редактировать:
CREATE TABLE moves (
move_id NUMBER,
game_id NOT NULL
REFERENCES games ( game_id )
ON DELETE CASCADE,
move_number NUMBER NOT NULL,
stages_count NUMBER DEFAULT 1,
CONSTRAINT move_pk PRIMARY KEY ( move_id ),
CONSTRAINT moves_const_1 UNIQUE ( game_id,
move_number,
stages_count )
);