Форум: "Прочее";
Текущий архив: 2009.04.26;
Скачать: [xml.tar.bz2];
ВнизПодскажите, как понять Найти похожие ветки
← →
Ega23 © (2009-02-26 15:26) [0]Power Designer сгенерил скрипт для Postgres, полез смотреть в хелп. Из хелпа:
CREATE TABLE order_items (
product_no integer REFERENCES products ON DELETE RESTRICT,
order_id integer REFERENCES orders ON DELETE CASCADE,
quantity integer,
PRIMARY KEY (product_no, order_id)
);
Restricting and cascading deletes are the two most common options. RESTRICT prevents deletion of a referenced row. NO ACTION means that if any referencing rows still exist when the constraint is checked, an error is raised; this is the default behavior if you do not specify anything. (The essential difference between these two choices is that NO ACTION allows the check to be deferred until later in the transaction, whereas RESTRICT does not.)
Вот сижу и никак не могу нюанс уловить: в чём же разница? Типа, RESTRICT сразу из транзакции выкинет, в то время как NO ACTION как-то позже можно использовать?
Что-то недопонимаю буржуйский текст... :(
← →
Правильный$Вася (2009-02-26 15:36) [1]ключевое слово - deferred (отложено)
т.е. ты можешь внутри транзакции сначала удалить строку из справочника, потом из ссылающейся на него таблицы - и это будет нормально для NO ACTION, а RESTRICT такое не допускает, для него зависимые строки должны отсутствовать на момент удаления
← →
Anatoly Podgoretsky © (2009-02-26 15:40) [2]> Ega23 (26.02.2009 15:26:00) [0]
Да простой текст, да и перевод у тебя правильный - позволяет использовать выполнить другие строки. Только тут ни слова про транзакции, тут речь идет об REFERENCES ... вот если у тебя будет более одной такой фразы, как в описание, то остальные будут выполнены, иначе сразу прекращается. Жесткое и мягкое удаление.
← →
Ega23 © (2009-02-26 15:42) [3]вон оно как...
Ага, а если из подчинённой на момент завершения транзакции не удалил - мне exception вернётся...
Ну вроде понятно. RESTRICT - более строгое ограничение.
← →
Ega23 © (2009-02-26 15:43) [4]
> Да простой текст, да и перевод у тебя правильный
Текст-то простой, просто показалось, что что-то недопонял.
Всем спасибо, вопрос закрыт. Остальное я уже на тестах сам окатаю.
← →
Anatoly Podgoretsky © (2009-02-26 16:16) [5]> Ega23 (26.02.2009 15:43:04) [4]
Вот это правильно, непонятные моменты проверять экспериментами.
← →
Ega23 © (2009-02-26 16:52) [6]
> Вот это правильно, непонятные моменты проверять экспериментами.
ну дык...
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.04.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c