Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Использовать значение identity колонки в том же операторе / 10 сообщений из 10, страница 1 из 1
06.07.2016, 19:03:23
    #39269230
Ayl
Ayl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать значение identity колонки в том же операторе
Oracle 12c

Хочу заполнять колонку либо 0, либо значением PK этой же записи при вставке.
PK - поле identity.
Можно ли одним оператором insert это сделать без помощи триггера?
...
Рейтинг: 0 / 0
06.07.2016, 19:23:47
    #39269245
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать значение identity колонки в том же операторе
Ayl,

....nextval
...
Рейтинг: 0 / 0
06.07.2016, 23:11:54
    #39269329
JaRo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать значение identity колонки в том же операторе
А что подразумевается под "либо 0, либо значением"? На выбор?
...
Рейтинг: 0 / 0
07.07.2016, 19:54:51
    #39270137
brzl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать значение identity колонки в том же операторе
Код: plsql
1.
create table test2(id number  generated as identity, nid number  as (mod(id,100)) ) 
...
Рейтинг: 0 / 0
07.07.2016, 19:57:17
    #39270138
brzl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать значение identity колонки в том же операторе
хех, теперь возник вопрос как вставку в такую таблицу сделать.
...
Рейтинг: 0 / 0
07.07.2016, 20:01:36
    #39270139
brzl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать значение identity колонки в том же операторе
Код: plsql
1.
insert into test2 values (default, default)


сам с собой поболтал
...
Рейтинг: 0 / 0
08.07.2016, 15:15:26
    #39270663
Ayl
Ayl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать значение identity колонки в том же операторе
-2-Ayl,
....nextval
Непонятно, к чему применить и когда.
Триггера нет и не хочется, PK - автосчетчик.

JaRoА что подразумевается под "либо 0, либо значением"? На выбор?
Не совсем.
Часть значений должна быть уникальной, а часть - нет. Признак уникальности хранится в справочнике вместе с типом данных.
В таблице создан уникальный ключ.
Соответственно, чтобы разрешить дублирование значений ввел фиктивное поле, которое должно либо заполняться константой для срабатывания констрейнта, либо уникальным значением для несрабатывания.
Можно, конечно, вместо ключа сделать уникальный функциональный индекс...

brzl
Код: plsql
1.
create table test2(id number  generated as identity, nid number  as (mod(id,100)))


хех, теперь возник вопрос как вставку в такую таблицу сделать.
Код: plsql
1.
insert into test2 values (default, default)


сам с собой поболтал

Совсем не туда. Но спасибо.


PS. Пока сделал через insert с нулем и последующий update при необходимости. Не очень нравится, возможно, все-таки перейду на функциональный индекс.
...
Рейтинг: 0 / 0
08.07.2016, 16:42:42
    #39270760
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать значение identity колонки в том же операторе
а с чего ты решил, что nextval нельзя поместить в дефолт?
...
Рейтинг: 0 / 0
08.07.2016, 17:11:37
    #39270791
Ayl
Ayl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать значение identity колонки в том же операторе
Shtock, тогда подробнее.
Что-то не догоняю, куда и что писать.
...
Рейтинг: 0 / 0
08.07.2016, 18:12:09
    #39270834
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать значение identity колонки в том же операторе
AylShtock, тогда подробнее.
Что-то не догоняю, куда и что писать.

если лень читать доку, читайте stff баян
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Использовать значение identity колонки в том же операторе / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]