Форум: "Базы";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];
ВнизSQL запрос: alter table table1 alter newcolumn1... Найти похожие ветки
← →
NeyroSpace (2002-10-11 12:38) [0]Interbase
Мне нужно в TABLE1 добавить столбец, кот. является внешним ключем к TABLE2.ID
столбец добавляется, но вот сделать его внешним ключем не получается...
Помогите! Как или сразу добавить столбец как внешний ключ
или сначала добавить, а потом изменить его, сделав внешним ключом?
← →
NeyroSpace (2002-10-11 12:49) [1]Или если в таблице есть данные эта операция обречена на провал?
← →
Val (2002-10-11 12:54) [2]его нужно, после создания, заполнить данными, содержащими какое-нибудь значение из TABLE2.ID.
потом создавать констреинт, а так у вас null-значения в новом столбце, что нарушает ограничение, вот оно и не создается.
← →
NeyroSpace (2002-10-11 13:20) [3]1. добавил столбец NEWCOLUMN1
2. заполнил значениями из будущего внешнего ключа (из TABLE2.ID)
3. пытаюсь создать внешний ключ
Получаю ошибку, такую же как и до этого:
alter table TABLE1 add CONSTRAINT myconstraint
FOREIGN KEY (id) REFERENCES TABLE2
Invalid modify request.
unsuccessful metadate update.
object TABLE2 is in use.
← →
Val (2002-10-11 13:21) [4]object TABLE2 is in use.
ну ясно же пишет.отстаньте от таблички :)
← →
NeyroSpace (2002-10-11 14:00) [5]Блин это чертов DB Explorer завис и ее юзал :-Е
Все заработало спасибо.
А есть что-ниб удобнее DB Explorer, чтобы и FireBird юзал?
← →
Val (2002-10-11 14:02) [6]www.ibexpert.com кажется. free for xUSSR.
← →
kaif (2002-10-11 22:21) [7]unsuccessful metadate update.
object TABLE2 is in use.
это ошибка Firebird.
если был хоть один select в данной сессии (коннекте, атачменте) к таблице TABLE2 или существует коннект с другой базой и в ней есть одноименная таблица TABLE2 (!!!) или имеется просто второй коннект, то создание FOREIGN KEY так глюкавит.
Поэтому, перед созданием FOREIGN KEY:
1. Закрываешь все соединения с базой, а желательно с сервером вообще.
2. Открываешь одно соединение (connect) и даешь команду
alter table TABLE1 add CONSTRAINT myconstraint
FOREIGN KEY (NEWCOLUMN1) REFERENCES TABLE2 (id)
Разумеется, все это сработает только при условии, что ссылочная целостность не нарушится сразу. То есть столбец не должен содержать неразрешимых ссылок на TABLE2.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c