powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ключи
6 сообщений из 6, страница 1 из 1
ключи
    #32178271
Глызин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обясните что такое значит
cascade,deferrable,deferred?
...
Рейтинг: 0 / 0
ключи
    #32178277
Глызин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или такой вопрос как сделать так чтоб в одной таблице был примари ключ
во второй фоджен и чтоб устанавливолось жеское соответствие один ко многим
то есть во второй табле где форжен ключ на первую табл всегда было ОДНО или больше ОДНОГО записей
чтоб не было так чтоб не было вообще записей в табл с фордженом а была запись в примари
программно уж больно не хочеться отследивать
...
Рейтинг: 0 / 0
ключи
    #32178304
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cascade означает как правило "включая подчиненные или зависимые объекты"

Примеры:

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

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

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

- начало транзакции
- вставляешь отдел, Оракл пока не ругается
- вствляешь сотрудников, повод ругаться исчез
- успешно коммитишь транзакцию, т.к. ограничения уже соблюдаются
...
Рейтинг: 0 / 0
ключи
    #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
ключи
    #32178589
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В случае отношения n:m обеспечить такое требование только с помощью ограничений не удастся, придется писать триггеры.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ключи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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