Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.05;
Скачать: CL | DM;

Вниз

Организация ссылочной целостности   Найти похожие ветки 

 
Jaxtor ©   (2003-05-16 14:24) [0]

Есть таблица PRODUCTTYPE:


CREATE TABLE PRODUCTTYPE (
PRODUCTTYPEID ID NOT NULL,
PRODUCTTYPE SHORT_STR
);

ALTER TABLE PRODUCTTYPE ADD CONSTRAINT PK_PRODUCTTYPE PRIMARY KEY (PRODUCTTYPEID);


Есть таблица PROP_DESCR:

CREATE TABLE PROP_DESCR (
PROP_DESCR INTEGER NOT NULL,
FIELDID VARCHAR(2) NOT NULL,
DESCRIPTION SHORT_STR,
"TYPE" SHORT_STR
);
ALTER TABLE PROP_DESCR ADD CONSTRAINT PK_PROP_DESCR PRIMARY KEY (PROP_DESCR, FIELDID);


Можно ли сделать, чтобы при удалении записи из таблицы PRODUCTTYPE с ID = <опр.значение> удалялись записи из таблицы
PROP_DESCR с ID = <опр.значение>? Просто у меня не получается организовать ссылочную целостность.


 
Jaxtor ©   (2003-05-16 14:40) [1]

мда... слишком сложный вопрос задал я....


 
Zacho ©   (2003-05-16 14:55) [2]


> Jaxtor © (16.05.03 14:40)

Да ничего сложного, просто у народа еще и другие дела, кроме формума, есть :-)
А вот ответ:
ALTER TABLE PROP_DESCR ADD CONSTRAINT FK_PROP_DESCR_PROODUCTTYPE FOREIGN KEY (PROP_DESCR) REFERENCES PRODUCTTYPE (ID) ON DELETE CASCADE;
А вообще-то стоит почитать Data Definition Guide.


 
Jaxtor ©   (2003-05-16 14:59) [3]

>Zacho
This operation is not defined for system tables.
unsuccessful metadata update.
could not find UNIQUE INDEX with specified columns.


 
Jaxtor ©   (2003-05-16 15:02) [4]

>А вообще-то стоит почитать Data Definition Guide.
А я считаю, что лучше почитать книжку по реляционным базам данных
об организации ссылочной целостности между таблицами связанными
сложным ключом.


 
Avreliy   (2003-05-16 15:16) [5]

А что, если создать триггер удаления для таблицы PRODUCTTYPE и в него вставить созданную ранее исполняемую процедуру, в которую будет передаваться параметр :PRODUCTTYPEID и, которая будет удалять необходимые строки из таблицы PROP_DESCR?


 
Zacho ©   (2003-05-16 15:20) [6]


> Jaxtor © (16.05.03 14:59)

Не очень внимательно посмотрел твой пост :( Надо:
ALTER TABLE PROP_DESCR ADD CONSTRAINT FK_PROP_DESCR_PROODUCTTYPE FOREIGN KEY (PROP_DESCR) REFERENCES PRODUCTTYPE ( PRODUCTTYPEID) ON DELETE CASCADE;


> Jaxtor © (16.05.03 15:02)

А вот если бы читал Data Definition Guide, то и сам бы сообразил, в чем ошибка.
А книжки по РСУБД читать конечно надо, кстати весьма советую К. Дж. Дейт " Введение в системы баз данных", но и документацию по используемому тобой инструменту знать обязательно. И таких примитивных вопросов возникать не будет. Или ты осваиваешь IB "методом тыка" ? Тогда удачи в наступании на грабли :-)
P.S. Не обижайся на некоторую резкость, но твои проблемы происходят именно от не желания читать стандартную документацию по IB.


 
Jaxtor ©   (2003-05-16 15:21) [7]

>Avreliy
Я думал об этом... Но у меня большая база и целиком основана на ссылочной целостности(не на триггерах). Нарушать единообразие не
желательно.


 
Zacho ©   (2003-05-16 15:24) [8]


> Avreliy (16.05.03 15:16)

Процедура вообще не нужна, достаточно триггера, а начиная с IB 5.0 в IB есть полноценная поддержка DRI (Declarative Referential Integrity) так что и триггер не нужен.
Господа, читайте же документацию, и не придется изобретать велосипеды !


 
Jaxtor ©   (2003-05-16 15:28) [9]

>Zacho Думаешь все работает?
Неа.

This operation is not defined for system tables.unsuccessful metadata update.object PRODUCTTYPE is in use.


А документацию по IB я читаю...


 
Zacho ©   (2003-05-16 15:36) [10]


> Jaxtor © (16.05.03 15:28)

Блин, ну сделай дисконнект/коннект и проследи, что бы это было единственное подключение к IB.

> А документацию по IB я читаю...

Не заметно. Иначе бы знал о DRI.
Кстати, в DataDef все расписано подробно и с примерами.


 
Jaxtor ©   (2003-05-16 15:38) [11]

> Зато я знаю IB API функции...


 
Johnmen ©   (2003-05-16 15:47) [12]

>Jaxtor © (16.05.03 15:38)
>> Зато я знаю IB API функции...

Наизусть ? И все параметры ? ДА ТЫ ПРОСТО КРУТ !!!
А мы все - ЛАМЕРЫ...:)




 
Jaxtor ©   (2003-05-16 16:12) [13]

Правда вот с WinAPI пока трудновато мне...
Знаю только несколько десятков функций.


 
Johnmen ©   (2003-05-16 16:22) [14]

>Jaxtor © (16.05.03 16:12)
>Правда вот с WinAPI пока трудновато мне...
>Знаю только несколько десятков функций.

Это очень мало ! Надо знать по крайней мере 1000 !
:)))




 
Jaxtor ©   (2003-05-16 16:26) [15]

Ну вот, в чем-то выигрываешь, в чем-то проигрываешь...
Всего знать нельзя.


 
Johnmen ©   (2003-05-16 16:43) [16]

>Jaxtor © (16.05.03 16:26)
>Всего знать нельзя.

Естественно ! Только это не причина нежелания прочитать элементарный хелп...:)


 
dtm   (2003-05-16 16:50) [17]

Тогда уж правильней будет
"ON DELETE CASCADE ON UPDATE CASCADE", а то через неделю снова этот же вопрос задаст.

> Jaxtor

А ты случайно не в IBConsole работаешь с IB? =)



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

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

Наверх




Память: 0.51 MB
Время: 0.013 c
8-13338
Saracin
2003-02-20 18:51
2003.06.05
Как перевести рисунок из TCanvas в TBitmap ?


1-13253
Gremlin
2003-05-15 09:17
2003.06.05
Еще раз об Exсel e


1-13135
samson
2003-05-26 07:00
2003.06.05
дерево


1-13194
microlab
2003-05-26 16:06
2003.06.05
Маниторинг вызова функций приложения


1-13322
Flex
2003-05-25 13:13
2003.06.05
Есть ли возможность снизить мерцание компонента?