Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ключи / 6 сообщений из 6, страница 1 из 1
06.06.2003, 12:18:46
    #32178271
Глызин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ключи
обясните что такое значит
cascade,deferrable,deferred?
...
Рейтинг: 0 / 0
06.06.2003, 12:22:57
    #32178277
Глызин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ключи
или такой вопрос как сделать так чтоб в одной таблице был примари ключ
во второй фоджен и чтоб устанавливолось жеское соответствие один ко многим
то есть во второй табле где форжен ключ на первую табл всегда было ОДНО или больше ОДНОГО записей
чтоб не было так чтоб не было вообще записей в табл с фордженом а была запись в примари
программно уж больно не хочеться отследивать
...
Рейтинг: 0 / 0
06.06.2003, 12:36:51
    #32178304
Violina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ключи
cascade означает как правило "включая подчиненные или зависимые объекты"

Примеры:

Удаляя отдел, удаляются его сотрудники связанные с ним по foreign key
Удаляя юзера удаляются его объекты
Выключая primary key выключается foreign key ссылающейся на него

deferrable (откладываемое)
способность ограничения откладывать проверку до фиксации транзакции

deferred (отложенное)
состояние ограничения, при котором оно проверяется при фиксации а не сразу после выполнения команды как обычно
...
Рейтинг: 0 / 0
06.06.2003, 12:44:54
    #32178316
Violina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ключи
по поводу второй задачи читала способ решения этой проблемы - без deferrable ограничений без программирования было бы не обойтись. Допустим есть таблицы emp и dept. Ты не сможешь вставить новую запись в dept поскольку нет еще ни одного сотрудника из этого отдела. Ты не сможешь вставить сотрудников для этого отдела, потому что его еще нет в таблице dept. Решение отложенные ограничения foreign keys.

- начало транзакции
- вставляешь отдел, Оракл пока не ругается
- вствляешь сотрудников, повод ругаться исчез
- успешно коммитишь транзакцию, т.к. ограничения уже соблюдаются
...
Рейтинг: 0 / 0
06.06.2003, 15:33:34
    #32178561
Глызин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ключи
вопрос такой еще раз

Таб1(Пользователи)
id name
1 Иванов
2 Петров
3 Сидоров


Таб2(Соответсвие)
id idgrp
1 2
2 2
1 1
3 1

Таб3(группы)
idgrp name
1 постоянные
2 не постоянные

id в tab1 primary
id в tab2 forgen
idgrp в tab2 forgen
idgrp в tab3 primary

все окей пока я не грохнул в табл2 строку '3 1'
то есть фактически оставил сидорова(3) без группы вообще

как бы так таблицы составить чтоб при удаленни этой строчки ошибку выдовал?
...
Рейтинг: 0 / 0
06.06.2003, 15:54:25
    #32178589
Violina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ключи
В случае отношения n:m обеспечить такое требование только с помощью ограничений не удастся, придется писать триггеры.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ключи / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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