powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Правильно ли генерировать Primary Key на основе Sequence
5 сообщений из 30, страница 2 из 2
Правильно ли генерировать Primary Key на основе Sequence
    #32159903
no name
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Kr_Yury
>А где гарантия, что все используют в качестве клиента приложение, заполняющее ключевое поле?

Можно так

CREATE OR REPLACE TRIGGER orders_bi
BEFORE
INSERT
ON orders
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
IF :NEW.order_id IS NULL
THEN
SELECT orders_seq.nextval
INTO :NEW.order_id
FROM DUAL;
END IF;
END;
...
Рейтинг: 0 / 0
Правильно ли генерировать Primary Key на основе Sequence
    #32159918
Kr_Yury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Работник
Смешно даже немного. а где гарантия что оно вообще правильно тогда написано. Как позвольте спросить его тестировали. Что там еще забыли заполнить ))?
Я в своём замечании имел ввиду не то, что приложение не заполняет ключевое поле, а то, что могут использоваться др. приложения - тот же SQL*Plus или др. утилиты
...
Рейтинг: 0 / 0
Правильно ли генерировать Primary Key на основе Sequence
    #32159941
Работник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Kr_Yury

Если это делаеться через sqlplus, то ситуация не меняеться. Поле то not null должно быть. Выдаст им сервер ошибку. Разберуться лучше. А может для целей вставки существует отдельная процедура и т.д
...
Рейтинг: 0 / 0
Правильно ли генерировать Primary Key на основе Sequence
    #32160021
Jinn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да что тут спорить, естественным ключ по определению быть не может. Причин много:
1. Естественный ключ может быть изменен внешними силами (постановлением ЦК КПСС :-) ).
2. Естественные ключи могут иметь одинаковое значение для разных объектов.
3. Автоматическая генерация естественного ключа затруднена и, чаще всего, требует вмешательства оператора.

Мало?

Еще веселуха когда в качестве ключа выбирается фасеточный ключ, особенно с ведущими нулями. Диапазон там ограничен :-)

Суррогатный ключ - самый лучший вариант. Он последователен (автоинкрементен, пусть и с пропусками), легко генерится в автоматическом режиме, не зависит от оператора, фаз луны и постановлений ВЦСПС. Используется такой ключ не пользователем а системой, поэтому и показывать его необязательно. А для желающих идентифицировать обект каким либо собственным кодом не столь сложно привязать к суррогатному ключу любую информацию, но система будет работать только с суррогатным ключом.
...
Рейтинг: 0 / 0
Правильно ли генерировать Primary Key на основе Sequence
    #32160051
fly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fly
Гость
угу, а еще для поддержки и ведения естественных ключей трэба создать целое бюро (если БД велика и разнолика) - одним оператором не обойтись.
...
Рейтинг: 0 / 0
5 сообщений из 30, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Правильно ли генерировать Primary Key на основе Sequence
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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