Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Каскадное удаление в PostgreSQL 
V
    Опции темы
NiUb
Дата 9.3.2010, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 20.7.2009

Репутация: нет
Всего: нет



Здравствуйте 
у меня следующая проблема: есть 2 таблицы в одной из них есть внешний ключ на id другой,  я прописываю для этого внешнего ключа св-во ON DELETE CASCADE но при удалении записи из 1-ой таблицы - запись во второй остаётся
Вот собственно SQL команды для создания таблиц
Код

CREATE TABLE productgroup
(
  id bigint NOT NULL,
  "name" character varying(255),
  descr_id bigint,
  CONSTRAINT productgroup_pkey PRIMARY KEY (id),
  CONSTRAINT productgroup_descr_id_fkey FOREIGN KEY (descr_id)
      REFERENCES descr (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE CASCADE
)

CREATE TABLE descr
(
  id bigint NOT NULL,
  description character varying(255),
  keywords character varying(255),
  CONSTRAINT descr_pkey PRIMARY KEY (id)
)


При удалении записи из таблицы productgroup , соответствующая ей запись в таблице descr остаётся
Помогите,пожалуйста, разобраться
Заранее юлагодарен за помощь
PM   Вверх
LSD
Дата 9.3.2010, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 3
Всего: 538



Дык у тебя неправильное направление FK. У тебя будет удаляться запись из таблицы productgroup, когда ты удаляешь запись из descr.

По твоей логике это таблица descr должна содержать FK на productgroup.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
NiUb
Дата 10.3.2010, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 20.7.2009

Репутация: нет
Всего: нет



Хм, да Вы правы
Тогда буду удалять ручками
Спасибо
PM   Вверх
LSD
Дата 11.3.2010, 16:24 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 3
Всего: 538



Цитата(NiUb @  10.3.2010,  14:52 Найти цитируемый пост)
Тогда буду удалять ручками

А почему не поменять направление FK? 

Структура БД должна отражать логику приложения. У тебя по логике, что к является дополнением к чему, описание к productgroup или productgroup дополнением к описанию?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
NiUb
Дата 13.4.2010, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 20.7.2009

Репутация: нет
Всего: нет



описание - дополнение к productgroup
PM   Вверх
LSD
Дата 14.4.2010, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 3
Всего: 538



Цитата(NiUb @  13.4.2010,  18:17 Найти цитируемый пост)
описание - дополнение к productgroup 

Значит descr должна содержать FK на productgroup.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
NiUb
Дата 14.4.2010, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 20.7.2009

Репутация: нет
Всего: нет



У меня таблицы создаются хибернайтом, а там такой мапинг, что productgroup содержит в себе объект descr, удаляя каскадом в хибернайте все работает нормально, но мне вот нужно ещё реализовать то же самое только обычных jdbc, все прекрасноработает если уалять руками, но я вот решил ещё попробовать воспользоваться механизмами самой бд, видать безрезультатно ...
PM   Вверх
LSD
Дата 15.4.2010, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 3
Всего: 538



Значит у тебя неправильно настроен маппинг в хибере. Создай тему в Java с классами, мепингом, и кодом создание таблиц.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.0760 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.