Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.011 c
14-65247
Alexandr
2002-05-17 11:46
2002.06.20
Автоматизация чужой программы


8-65184
Королев
2002-02-06 14:07
2002.06.20
какая распайка у кабеля cc-208?


14-65220
Evgeny
2002-05-17 12:41
2002.06.20
Даже потрепаться модератор и то не дает


1-65164
Dr. Web
2002-06-07 15:47
2002.06.20
получить Иконки в MDIChild ах через Messages...


14-65245
indigo
2002-05-18 17:43
2002.06.20
mp3




   Наверх