2013-07-05 5 views
0

Я хочу, чтобы первый столбец таблицы в PLSQL был автоматически инкрементом. Этот столбец будет основным ключом для этой таблицы. Я услышал что-то, называемое сериализацией, но я не получил надлежащего описания об этом. Я работал в SQL Server. Я новичок в Oracle (PLSQL). Пожалуйста, помогите мне найти правильное решение.Номер строки для таблицы в plsql

ответ

2

Создание последовательности

CREATE SEQUENCE name_of_sequence 
    START WITH 1 
    INCREMENT BY 1 
    CACHE 100; 

Создать триггер

CREATE OR REPLACE TRIGGER trigger_name 
    BEFORE INSERT ON table_name 
    FOR EACH ROW 
BEGIN 
    SELECT name_of_sequence.nextval 
    INTO :new.name_of_primary_key_column 
    FROM dual; 
END; 

Синтаксис триггера становится немного проще в 11g, так как вы можете сделать прямое назначение к :new.name_of_primary_key_column а чем выбор из двойного. И я понимаю, что в 12c есть дополнительный синтаксический сахар, который делает это еще проще, хотя я не играл с этим.

Смежные вопросы