Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.06.20;
Скачать: [xml.tar.bz2];

Вниз

INTERBASE и CONSTRAINT   Найти похожие ветки 

 
fishka   (2002-05-24 12:05) [0]

Не получается добавить новые ограничения целостности для таблицы (пробую и из программы и через SQL EXplorer).
Выдается ошибка: object PPP is in use. Но я же ничего не открываю. Вот код:
ALTER TABLE BBB ADD CONSTRAINT BBB_KS
FOREIGN KEY (ks)
REFERENCES PPP

или так:
ALTER TABLE BBB ADD CONSTRAINT BBB_KS
FOREIGN KEY (ks)
REFERENCES PPP (OWK)

Для таблицы PPP построен первичный ключ по столбцу OWK.
Где ошибка? Помогите, пожалуйста.


 
Alexandr   (2002-05-24 12:07) [1]

1) выгони нахер пользователей из базы
2) Перезапусти ibserver


 
kaif   (2002-05-24 12:18) [2]

Это ошибка IB. Она есть даже в FireBird.
Ошибка проявляется следующим образом.
При попытке создать FOREIGN KEY сервер говорит, что таблица используется, хотя это не так, если:
1. К данной базе подключено более 1 пользователя.
2. Есть другая база с одноименной таблицей и к ней подключен хоть 1 пользователь.
Единственный способ избавиться от этой ошибки - переподключиться к базе + пользователь только Вы.

Ошибка очень неприятная.:((


 
fishka   (2002-05-24 12:22) [3]

>Alexandr ©
Спасибо за совет. Но сервер локальный, никаких пользователей вроде бы нет.


 
kaif   (2002-05-24 12:28) [4]

Может оказаться 2 коннекта по причине того, что один коннект из проекта в Delphi (например, в данный момент IBDatabase.Connected = True), а второй коннект из запущенного из-под Delphi приложения. Или включена IBConsole и сейчас работает с базой. Важно не количество разных юзеров, а количество коннектов (attachments).


 
Alexandr   (2002-05-24 12:34) [5]

или сам этот индекс юзал раньше .
перестартуй ibserver и все должно быть ОК


 
fishka   (2002-05-24 13:51) [6]

Спасибо всем за советы. Вечером попробую (сейчас нет 6 IB).
И еще вопрос: если внешних ключей несколько, как будет выглядеть текст запроса при создании таблицы:
CREATE TABLE BBB
( OWK SMALLINT NOT NULL,
code_1 SMALLINT NOT NULL,
code_2 SMALLINT NOT NULL,
.........,
NAME CHAR(25),
PRIMARY KEY (OWK),
constraint po_1
foreign key (code_1) references bd1 (code_n1),
constraint po_2
foreign key (code_2) references bd2 (code_n2))


Так было написано в моей программе, но создать таблицу с 2 внешними ключами не удалось, только с одним. В чем моя ошибка?


 
kaif   (2002-05-24 14:01) [7]

Я не пробовал прямо в тексте CREATE TABLE создавать более 1 внешнего ключа, но я знаю, что ряд отдельных команд
ALTER TABLE ADD CONSTRAINT...
подряд сработают. Если ты извлечешь скрипт базы, то там это будет происходить именно так. сначала создание таблицы, затем ряд отдельных команд ALTER TABLE с добавлением внешних ключей.


 
fishka   (2002-05-24 14:59) [8]

kaif © (24.05.02 14:01)
У меня тоже таблица создается только с одним внешним ключом.
А если пишу больше, то возникает ошибка. Буду создавать с одним, а потом уже ALTER TABLE ADD CONSTRAINT. Спасибо.


 
Val   (2002-05-24 17:02) [9]

>fishka (24.05.02 13:51)
создать таблицу с 2 внешними ключами не удалось
почему, что за ошибка?
code_1 SMALLINT NOT NULL
лучше объявить так:
constraint NN_BBB_code_1 check (code_1 is not null)


 
fishka   (2002-05-24 17:27) [10]

Val © (24.05.02 17:02)
Непонятно в данном синтаксисе, где указывается тип столбца (SMALLINT, Integer и т.п.).


 
Val   (2002-05-24 17:41) [11]

я имел ввиду только ограничение NOT NULL, поскольку при вашем его определении сервер все равно создаст констреинт, но с системным именем, а так вы имеете констреинт, по имени которого с первого взгляда можно понять что он означает. Также и для других, желательно давать понятные имена, например используя префиксы FK_,PK_ и т.д.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.06.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
3-64994
PSZ
2002-05-28 15:14
2002.06.20
Почему в DBEdit текст появляется только, когда он в фокусе ?


6-65200
wed
2002-04-10 15:41
2002.06.20
Ошибка при запуске клиента (DCOM, Socket)


3-64919
vfv
2002-05-26 11:34
2002.06.20
CachedUpdates


4-65294
Di_wind
2002-04-22 01:16
2002.06.20
ПАмять


3-64982
Jakob
2002-05-28 21:10
2002.06.20
Как отказаться от BDE





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский