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

Не могу создать внешний ключ   Найти похожие ветки 

← →
RDA ©   (2003-06-26 17:06) [0]

Вот листинг
CREATE DOMAIN ID AS INTEGER NOT NULL;

CREATE TABLE PID (
ORG ID NOT NULL,
PIDID ID NOT NULL,
PARENT ID DEFAULT "-1" NOT NULL,
KIND ID DEFAULT "0" NOT NULL,
NAZV NAZV070 NOT NULL COLLATE WIN1251);

CREATE TABLE FIZ (
ORG ID NOT NULL,
PID ID NOT NULL,
SOTR ID NOT NULL,
IDKOD NAZV010 NOT NULL COLLATE WIN1251,
FNAME FIO COLLATE WIN1251
....)

CREATE TABLE SOTR (
ORG ID NOT NULL,
PID ID NOT NULL,
ID ID NOT NULL,
GOS LOGIK NOT NULL,
DATAOPEN DATA,
DATACLOSE DATA
....)

ALTER TABLE FIZ ADD CONSTRAINT PK_FIZ PRIMARY KEY (ORG, PID, SOTR);
ALTER TABLE PID ADD CONSTRAINT PK_PID PRIMARY KEY (ORG, PIDID);
ALTER TABLE SOTR ADD CONSTRAINT PK_SOTR PRIMARY KEY (ORG, PID, ID);

Не могу связать внешним ключом таблицы SOTR и FIZ с таблицей PID
ALTER TABLE SOTR ADD CONSTRAINT FK_SOTR_PID FOREIGN KEY (PID) REFERENCES PID (PIDID) ON DELETE CASCADE ON UPDATE CASCADE;


← →
Zacho ©   (2003-06-26 18:34) [1]

FK может ссылаться только на первичный ключ или UNIQUE CONSTRAINT.
Так что надо (если это именно то, что тебе надо) так:
ALTER TABLE SOTR ADD CONSTRAINT FK_SOTR_PID FOREIGN KEY (ORG,PID) REFERENCES PID (ORG,PIDID) ON DELETE CASCADE ON UPDATE CASCADE;


← →
RDA ©   (2003-06-26 18:43) [2]

А разве он не может ссылаться на поле входящее в состав первичного ключа?
Если нет то как быть. Создавать для этого поля уникальный индекс и потом вводить его в состав первичного ключа?


← →
Zacho ©   (2003-06-26 19:05) [3]


> RDA © (26.06.03 18:43)

Нет, только на первичный ключ полностью. Если не устраивает связь по ORG, PIDID то напиши подробнее как именно должны быть связаны таблицы.



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

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



Память: 0.45 MB
Время: 0.012 c
7-68078
Uncle Archi
2003-05-06 23:51
2003.07.21
Список процессов.


1-67894
IronHawk
2003-07-07 19:26
2003.07.21
Приветствую Мастеров! Как в ТМемо сдвинуть курсор в конец строки?


1-67902
Прямой
2003-07-05 04:57
2003.07.21
Вопросик по нестандартному использованию таймера


14-68001
MetalFan
2003-07-04 07:36
2003.07.21
DBGrid.SelectedRows


3-67701
-=alive=-
2003-06-25 08:58
2003.07.21
Проверка существующих дат




   Наверх