Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли к существующему FOREIGN KEY добавить ON DELEET CASCADE?


Prohodil Mimo ©   (2005-09-08 12:55:00) 

FB 1.5.2

Можно ли к существующему FOREIGN KEY добавить ON DELEET CASCADE?

ALTER TABLE KOMAND ADD FOREIGN KEY (ID_PAM) REFERENCES PAMATOJ (ID_PAM);

как должен выглядеть запрос?


Prohodil Mimo   (2005-09-08 15:01:00) [1]

Val ©   (08.09.05 13:29) [5]

naschot dannih ja poshutil... tablica jesho pusta :o)

Spasibo vsem za otveti!


Val   (2005-09-08 13:29:00) [2]

> Prohodil Mimo ©   (08.09.05 13:16)
корректно удалить текущий констреинт и создать новый с тем же именем но с on delete cascade. причем тут табличные данные-то?


DSKalugin   (2005-09-08 13:21:00) [3]

ибэксперт для этого пересоздает поле с использованием временного

1
ALTER TABLE ADRESSES ADD IBE$$TEMP_COLUMN
INTEGER DEFAULT  0
2
UPDATE RDB$RELATION_FIELDS F1
SET
F1.RDB$DEFAULT_VALUE  = (SELECT F2.RDB$DEFAULT_VALUE
                        FROM RDB$RELATION_FIELDS F2
                        WHERE (F2.RDB$RELATION_NAME = 'ADRESSES') AND
                              (F2.RDB$FIELD_NAME = 'IBE$$TEMP_COLUMN')),
F1.RDB$DEFAULT_SOURCE = (SELECT F3.RDB$DEFAULT_SOURCE FROM RDB$RELATION_FIELDS F3
                        WHERE (F3.RDB$RELATION_NAME = 'ADRESSES') AND
                              (F3.RDB$FIELD_NAME = 'IBE$$TEMP_COLUMN'))
WHERE (F1.RDB$RELATION_NAME = 'ADRESSES') AND
     (F1.RDB$FIELD_NAME = 'ID_TOWN')
3
ALTER TABLE ADRESSES DROP IBE$$TEMP_COLUMN


Prohodil Mimo   (2005-09-08 13:16:00) [4]

ладно, тогда пересоздам таблицу и все FK к ней, потом данные перезалью.

И попутно ещо вопрос:
можно ли к существуюшему полю добавить DEFAULT ?
через ALTER COLUMN не получилось


Desdechado   (2005-09-08 13:08:00) [5]

RDB$ref_constraints
поле RDB$delete_rule сделать CASCADE
но результат не гарантирую :)


Desdechado   (2005-09-08 13:05:00) [6]

к безымянному (как в примере) вряд ли
к именованному
ALTER TABLE KOMAND
ADD CONSTRAINT FK_KOMAND_PAMATOJ
FOREIGN KEY (ID_PAM) REFERENCES PAMATOJ (ID_PAM);
можно попробовать через системные таблицы


Наверх

Титульная страница Поиск, карта сайта Написать письмо