powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Использовать значение identity колонки в том же операторе
10 сообщений из 10, страница 1 из 1
Использовать значение identity колонки в том же операторе
    #39269230
Фотография Ayl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oracle 12c

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

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


сам с собой поболтал
...
Рейтинг: 0 / 0
Использовать значение identity колонки в том же операторе
    #39270663
Фотография Ayl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-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
Использовать значение identity колонки в том же операторе
    #39270760
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а с чего ты решил, что nextval нельзя поместить в дефолт?
...
Рейтинг: 0 / 0
Использовать значение identity колонки в том же операторе
    #39270791
Фотография Ayl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shtock, тогда подробнее.
Что-то не догоняю, куда и что писать.
...
Рейтинг: 0 / 0
Использовать значение identity колонки в том же операторе
    #39270834
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AylShtock, тогда подробнее.
Что-то не догоняю, куда и что писать.

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


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