Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-101345
Orions
2002-10-20 23:36
2002.10.31
Работа с каталогами


4-101588
iNew
2002-09-19 18:46
2002.10.31
Правда ли что ф-ия Sleep дает задерку кратную 10 мс


4-101597
Igor_thief
2002-09-14 12:17
2002.10.31
Hook


3-101125
Wetnose
2002-10-08 08:11
2002.10.31
ERWin и русский шрифт


1-101265
AlexGreG
2002-10-22 07:00
2002.10.31
... ЯЗЫК ... как много в этом звуке





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский