Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Удалить записи в дочерних таблицах / 7 сообщений из 7, страница 1 из 1
10.09.2007, 15:34
    #34788683
WinLin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить записи в дочерних таблицах
Таблица (справочник) spr1:
spr1.id - первичный ключ.
Подчиненные таблицы:
tab1.spr1_id int reference spr1(id),
tab2.spr1_id int reference spr1(id).

Как лучше(правильнее) сделать, чтобы при удалении записи в spr1 удалялись записи в tab1 и tab2?
...
Рейтинг: 0 / 0
10.09.2007, 15:52
    #34788737
nedba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить записи в дочерних таблицах
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ALTER TABLE tab1
  ADD CONSTRAINT tab1_spr1_id FOREIGN KEY (spr1_id)
      REFERENCES spr1 (id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE;

ALTER TABLE tab2
  ADD CONSTRAINT tab2_spr1_id FOREIGN KEY (spr1_id)
      REFERENCES spr1 (id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE;

Помимо CASCADE - есть еще другие ключевые слова.
...
Рейтинг: 0 / 0
10.09.2007, 15:52
    #34788738
pamir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить записи в дочерних таблицах
Создать внешний ключ с экшеном on delete - cascade
...
Рейтинг: 0 / 0
10.09.2007, 17:07
    #34789029
WinLin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить записи в дочерних таблицах
Как добавить правило "on delete cascade" на поле и не потерять данные?
...
Рейтинг: 0 / 0
10.09.2007, 17:20
    #34789093
WinLin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить записи в дочерних таблицах
Понял сначала удаляем constraint, потом по новой создаем.
...
Рейтинг: 0 / 0
10.09.2007, 17:51
    #34789217
nedba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить записи в дочерних таблицах
Код: plaintext
ON UPDATE Restrict ON DELETE Restrict 

Зачем правило убирать - получи сообщение об ошибке и обработай его как душе будет угодно. К примеру перенеси инфу в архив.
...
Рейтинг: 0 / 0
10.09.2007, 17:55
    #34789237
pamir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить записи в дочерних таблицах
nedba
Код: plaintext
ON UPDATE Restrict ON DELETE Restrict 

Зачем правило убирать - получи сообщение об ошибке и обработай его как душе будет угодно. К примеру перенеси инфу в архив.Если ему надо перенести в архив, то да, но если у него стоит задача - удалить, то делает как сказали.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Удалить записи в дочерних таблицах / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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