Проблемы master-detail с внешними ключами

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
aix

Проблемы master-detail с внешними ключами

Сообщение aix » 25 ноя 2004, 15:23

У меня есть база данных с который работает одно клиентское по которое не я писал, а теперь мне нужно написать своего клиента и юзать информацию из таблиц и создать свои таблицы которые бы были detail для той которая уже есть.
В моей уже существующей таблице есть куча полей но мне надо использовать только Ф.И.О и первичный ключ, и на основе внешнего ключа привезать данные из иой таблице в мою таблицу с который бы брались такие данны как возраст и пол.

В общем я создаю свою таблицу:

CREATE TABLE AGENCY (
AID INTEGER NOT NULL,
GENID INTEGER,
SEX VARCHAR(50),
AGE DATE,
CONSTRAINT PK_AGENCY PRIMARY KEY (AID) );

таблица создаётся нормально.

Создаю внешний ключ:

ALTER TABLE AGENCY ADD CONSTRAINT FK_AGENCY FOREIGN KEY (GENID) REFERENCES STUDENTS (GENID);

и тут у меня выдаётся ошибка:
unsuccessful metadata update
could not find UNIQUE INDEX with specified columns

Как мне создать этот внешний ключ ?
вроде всё делаю правильно...
с базами стал работать совсем недавно... многого не знаю. Помогите пожалуйста !

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 25 ноя 2004, 15:25

оно не может создать FK потому что не находит PK по STUDENTS (GENID)

aix

master

Сообщение aix » 25 ноя 2004, 15:28

Если мало инфы то вот информация о таблице с которой работаю то есть которая у меня должна быть master.

ALTER TABLE STUDENTS ADD PRIMARY KEY (OFFICEID, GENID);

[лишнее убрал KDV]

aix

Сообщение aix » 25 ноя 2004, 15:30

kdv писал(а):оно не может создать FK потому что не находит PK по STUDENTS (GENID)
и что мне делать что бы находило PK по STUDENTS (GENID) ?

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 25 ноя 2004, 16:28

aix писал(а):
kdv писал(а):оно не может создать FK потому что не находит PK по STUDENTS (GENID)
и что мне делать что бы находило PK по STUDENTS (GENID) ?
Для начала - найти его самому :lol:

aix

Сообщение aix » 25 ноя 2004, 17:09

Merlin писал(а):
aix писал(а):
kdv писал(а):оно не может создать FK потому что не находит PK по STUDENTS (GENID)
и что мне делать что бы находило PK по STUDENTS (GENID) ?
Для начала - найти его самому :lol:
Где и как ?

Гость

Сообщение Гость » 25 ноя 2004, 18:46

Человек!! будь человеком.
Внешний ключ обязательно сохдается только на
PRIMARY или UNIQUE индексы нужного тебе поля связываемой
таблицы. Для того, чтобы не получилось связи - один - ко многим.
Ибо имначе - фигня это а не ключ.

Тобиш - создай UNIQUE INDEX или сделай связку по PRIMARY KEYS

Ответить