Значение Oracle по умолчанию в столбце Number - PullRequest
1 голос
/ 26 мая 2011

У меня есть числовой столбец в таблице с именем SampleTable, который определяется следующим образом

Идентификационный номер (10) ПО УМОЛЧАНИЮ 1

У меня есть триггер для другой таблицы (SomeTable) и ОБНОВЛЕНИЕ КАЖДОГОROW (Trigger -: New.ID), который вставляет значение из этой таблицы (SomeTable) в SampleTable.

Иногда идентификатор из SomeTable может иметь значение NULL, и я хотел, чтобы SampleTable вставил значение по умолчанию 1 в моем случае.

Но он вставляет NULL (пробел) в таблицу.

Я немного новичок в PL / SQL, поэтому любая помощь очень ценится.

1 Ответ

1 голос
/ 26 мая 2011

Столбец по умолчанию используется, только если столбец не указан во вставке:

insert into sampletable (othercol) values ('x'); -- ID will default to 1 here

Он не используется, если столбец был указан, даже если в него был передан NULL:

insert into sampletable (othercol, id)
values ('x', null); -- ID will be set to null here

Чтобы справиться с этим, ваш триггер может сделать это:

insert into sampletable (othercol, id)
values ('x', coalesce(:new.id,1));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...