Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.31;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
1-101339
Lony
2002-10-20 15:55
2002.10.31
WebBrowser


7-101547
White Tiger
2002-08-28 15:38
2002.10.31
Просмотр/установка прав на папку/файлы в Win2k (NTFS)


3-101074
Nick-From
2002-10-13 19:12
2002.10.31
Кто работал с FIBPlus, не скажите


6-101413
MVova
2002-08-30 14:08
2002.10.31
Получить BROADCAST


6-101420
Ferrum
2002-09-01 13:02
2002.10.31
Подскажите как скроллировать страницу в TWebBrowser