![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли к существующему 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);
можно попробовать через системные таблицы