![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Melancholic |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 8.5.2007 Репутация: нет Всего: нет |
Хочу реализовать на триггерах в MySQL поддрежку правил типа NO ACTION ссылочной целостности. То есть есть две таблицы - родительская и дочерняя. Как водится, в дочерней таблице в качестве внешнего ключа присутствует первичный ключ родительской таблицы. Например родительская таблица:
ОТДЕЛ {код отдела, ...} Дочерняя таблица: СОТРУДНИК {код сотрудника, код отдела, ...} Допустим я хочу перевести сотрудника в другой отдел:
Если отдела с кодом C не существует, то это приведёт к нарушению целостности. Чтобы этого избежать я создаю триггер:
На месте строки <Вот здесь мой вопрос> должна быть функция запрета дальнейшего выполнения операции обновления записи в таблице СОТРУДНИК, но я не знаю существует ли такая операция в MySQL. |
||||
|
|||||
skaizer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 18.4.2007 Репутация: нет Всего: нет |
Если я не ошибаюсь, то подобный метод можно реализовать с помощью Внешних ключей. Насколько мне известно они гарантируют целостность ссылочной структуры.
А в Вашем примере, насчет прерывания выполнения процедуры я не знаю, я бы создал таблицу ошибок и предупреждений, и обращался бы к ней при ошибках в работе БД. |
|||
|
||||
Melancholic |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 8.5.2007 Репутация: нет Всего: нет |
К сожалению, MyISAM не поддерживает внешних ключей.
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |