Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / FOREIGN KEY definition / 5 сообщений из 5, страница 1 из 1
02.10.2001, 07:19
    #32014753
Docent
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOREIGN KEY definition
Народ!

Или я не догоняю и это действительно так?

ALTER TABLE xxx ADD CONSTRAINT fk_xxx_yyy FOREIGN KEY (field) REFERENCES yyy ...

В Oracle продолжение может быть [ON DELETE {CASCADE | SET NULL}],

а в Interbase [ON UPDATE {CASCADE | SET NULL}] [ON DELETE {CASCADE | SET NULL}]
и если указать ON UPDATE CASCADE, то при изменении ключа в родительской таблице автоматически обновляется поле вторичного ключа в дочерней, что избавляет от необходимости написания триггера AFTER UPDATE для ослеживания изменения ключа в родительской и обновления ключей дочерних таблиц. Неужели Oracle в этом плане уступает InterBase и необходимо писать массу аналогичных триггеров?
...
Рейтинг: 0 / 0
02.10.2001, 13:56
    #32014801
maski_v
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOREIGN KEY definition
Я тоже этого не нашел. только практика постоянного изменения ключей очевидно не очень удачная.
попробуй обойтись каким-нибудь подставным полем, которое никогда не изменяется а все время нарастает и используй его вместо ключа.
По большому счету все время лопатить дочерние записи не разумно.
...
Рейтинг: 0 / 0
02.10.2001, 19:07
    #32014824
Docent
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOREIGN KEY definition
АВТОР. Уточняю. Здесь проблема немного в другом. Из клиентского приложения ключевых полей может быть не видно или они ReadOnly. Давать права на таблицу в целом несколько легче, чем на отдельные поля. Обычно пользователю дается право обновлять либо все поля, либо ни одного. Допустим постепенно пользователи умнеют и начинают сами по-немногу писать запросы на SQL. Выбирают например данные из таблицы с информацией об организациях с которыми работает предприятие и каким-нибудь UPDATE решают изменить код любимой организации, думая что это позволит ей быть первой в списке (для ускорения работы, например). И если в этом случае не будет опеспечена целостность, то в базе начнет развиваться бардак.
...
Рейтинг: 0 / 0
03.10.2001, 04:44
    #32014840
alvako
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOREIGN KEY definition
to: Docent
Не сможет пользователь сделать UPDATE ключевого поля, если на него есть ссылки! Тот-же FOREIGN KEY (который не сделает каскадный UPDATE) помешает поменять значение PRIMARY KEY. И целостность не пострадает.
В 99% процентах случаев, каскадный UPDATE вообще не нужен. А в 1% необходим, вследствии неправильно спроектированной структуры БД.
...
Рейтинг: 0 / 0
03.10.2001, 09:58
    #32014900
Docent
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOREIGN KEY definition
to: alvako
Согласен. Действительно так. Немного не догонял.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / FOREIGN KEY definition / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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