Текущий архив: 2005.10.23;
Скачать: CL | DM;
ВнизМожно ли к существующему FOREIGN KEY добавить ON DELEET CASCADE? Найти похожие ветки
← →
Prohodil Mimo © (2005-09-08 12:55) [0]FB 1.5.2
Можно ли к существующему FOREIGN KEY добавить ON DELEET CASCADE?
ALTER TABLE KOMAND ADD FOREIGN KEY (ID_PAM) REFERENCES PAMATOJ (ID_PAM);
как должен выглядеть запрос?
← →
Desdechado © (2005-09-08 13:05) [1]к безымянному (как в примере) вряд ли
к именованному
ALTER TABLE KOMAND
ADD CONSTRAINT FK_KOMAND_PAMATOJ
FOREIGN KEY (ID_PAM) REFERENCES PAMATOJ (ID_PAM);
можно попробовать через системные таблицы
← →
Desdechado © (2005-09-08 13:08) [2]RDB$ref_constraints
поле RDB$delete_rule сделать CASCADE
но результат не гарантирую :)
← →
Prohodil Mimo © (2005-09-08 13:16) [3]ладно, тогда пересоздам таблицу и все FK к ней, потом данные перезалью.
И попутно ещо вопрос:
можно ли к существуюшему полю добавить DEFAULT ?
через ALTER COLUMN не получилось
← →
DSKalugin © (2005-09-08 13:21) [4]ибэксперт для этого пересоздает поле с использованием временного
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
← →
Val © (2005-09-08 13:29) [5]> Prohodil Mimo © (08.09.05 13:16)
корректно удалить текущий констреинт и создать новый с тем же именем но с on delete cascade. причем тут табличные данные-то?
← →
Prohodil Mimo © (2005-09-08 15:01) [6]Val © (08.09.05 13:29) [5]
naschot dannih ja poshutil... tablica jesho pusta :o)
Spasibo vsem za otveti!
Страницы: 1 вся ветка
Текущий архив: 2005.10.23;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.039 c