Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.21;
Скачать: 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 вся ветка

Текущий архив: 2003.07.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
14-67975
me
2003-07-07 00:26
2003.07.21
алкоголь


1-67843
Владий
2003-07-07 16:01
2003.07.21
Как сменить кодировку текста в клипборде? (+)


1-67767
MaXie
2003-07-08 10:50
2003.07.21
Помогите разорвать замкнутый круг, не нарушив при этом основ ООП!


11-67747
SPeller
2002-11-17 13:36
2003.07.21
DesignTime отрисовка


3-67698
SCORPION ZP
2003-06-24 11:43
2003.07.21
Реструктурирование таблиц dBASE программным путем