Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Создание ключей в ibexpert / 12 сообщений из 12, страница 1 из 1
29.04.2010, 16:29
    #36605630
Aleksandr_V
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание ключей в ibexpert
Помогите пожалуйста с созданием ключей в firebird. Использую ibexpert.

Поля типа integer. Связь с внешней таблицей DEVICES.

alter table DICT_DEVICES
add constraint FK_DICT_DEVICES_1
foreign key (ID_DEV_TOTAL)
references DEVICES(ID_DEVICE)
on delete CASCADE
on update CASCADE

После выполнения скрипта, выходит ошибка:

This operation is not defined for system tables.
unsuccessful metadata update.
Unknown columns in index FK_DICT_DEVICES_1.

Непонимаю почему упоминаются системные таблицы.
...
Рейтинг: 0 / 0
29.04.2010, 16:38
    #36605653
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание ключей в ibexpert
Aleksandr_VНепонимаю почему упоминаются системные таблицы.

Потому что "унутре" всё делается через них.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
29.04.2010, 16:39
    #36605656
Murtaza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание ключей в ibexpert
Aleksandr_VНепонимаю почему упоминаются системные таблицы.Можешь не обращать внимания. :)

Код: plaintext
Unknown columns in index FK_DICT_DEVICES_1.
Это надо смотреть тебе.
...
Рейтинг: 0 / 0
29.04.2010, 19:45
    #36606120
Aleksandr_V
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание ключей в ibexpert
[/quot]Можешь не обращать внимания. :)

Код: plaintext
Unknown columns in index FK_DICT_DEVICES_1.
Это надо смотреть тебе.[/quot]

С индексами разобрался. Но теперь почему то:

could not find UNIQUE or PRIMARY KEY constraint in table DEVICES with specified columns.
...
Рейтинг: 0 / 0
29.04.2010, 19:48
    #36606125
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание ключей в ibexpert
Aleksandr_V
could not find UNIQUE or PRIMARY KEY constraint in table DEVICES with
specified columns.

И какое слово тут тебе непонятно? ID_DEVICE является первичным ключом?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
29.04.2010, 20:36
    #36606181
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание ключей в ibexpert
Aleksandr_V,

всё определяется последовательностью действий:
1) пересоздаёте ДОЧЕРНЮЮ таблицу
2) пересоздаёте ГЛАВНУЮ таблицу с объявлением одного из столбцов как not null
3) создаете ПК для главной таблицы
4) создаете внешний ключ в дочерней таблице, ссылающийся на главную.

Вот скрипт, запускайте его произвольное число раз, он будет выполняться Ок:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
recreate table dict_devices(id int, id_dev_total int);
recreate table devices(id_device int not null, info varchar( 20 ));
alter table devices add constraint pk_device primary key(id_device);
alter table dict_devices add constraint fk_dict_devices_1
foreign key (id_dev_total) references devices(id_device)
on delete CASCADE on update CASCADE;

insert into devices values( 1 , 'abc');
insert into devices values( 2 , 'def');
insert into devices values( 3 , 'was');

insert into dict_devices values( 1 , 1 );
insert into dict_devices values( 2 , 1 );
insert into dict_devices values( 3 , 1 );
insert into dict_devices values( 4 , 1 );
insert into dict_devices values( 5 , 2 );
insert into dict_devices values( 6 , 2 );
insert into dict_devices values( 7 , 3 );
insert into dict_devices values( 8 , 3 );
insert into dict_devices values( 9 , 1 );
commit;
...
Рейтинг: 0 / 0
29.04.2010, 22:29
    #36606308
Aleksandr_V
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание ключей в ibexpert
Dimitry Sibiryakov
Aleksandr_V
could not find UNIQUE or PRIMARY KEY constraint in table DEVICES with
specified columns.

И какое слово тут тебе непонятно? ID_DEVICE является первичным ключом?


мне не понятно почему не найдено поле с уникальными значениями. Да. ID_DEVICE является первичным ключом.
...
Рейтинг: 0 / 0
29.04.2010, 22:48
    #36606319
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание ключей в ibexpert
AVforeign key (ID_DEV_TOTAL)
references DEVICES(ID_DEVICE)

кстати, ужасно. всегда надо указывать constraint <имя_ограничения> ..., иначе потом его придется с фонариком искать, т.к. если имя ограничения не указано, то оно автогенерируется.
...
Рейтинг: 0 / 0
29.04.2010, 23:03
    #36606331
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание ключей в ibexpert
Aleksandr_VДа. ID_DEVICE является первичным ключом.

Это ты так думаешь. А у сервера другое мнение.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
29.04.2010, 23:04
    #36606332
NextMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание ключей в ibexpert
Указано.
...
Рейтинг: 0 / 0
29.04.2010, 23:05
    #36606334
NextMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание ключей в ibexpert
Я про kdv...надо указывать constraint <имя_ограничения> ..., иначе...
...
Рейтинг: 0 / 0
30.04.2010, 00:06
    #36606382
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание ключей в ibexpert
NextManУказано.
да, просмотрел, из-за "форматирования". Впрочем, ПК действительно не видно.
...
Рейтинг: 0 / 0
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Создание ключей в ibexpert / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]