![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Организация ссылочной целостности [D6, IB6.x]
Jaxtor © (2003-05-16 14:24:00)Есть таблица 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 = <опр.значение>? Просто у меня не получается организовать ссылочную целостность.
dtm (2003-05-16 16:50:00) [1]Тогда уж правильней будет
"ON DELETE CASCADE ON UPDATE CASCADE", а то через неделю снова этот же вопрос задаст.
> Jaxtor
А ты случайно не в IBConsole работаешь с IB? =)
Johnmen (2003-05-16 16:43:00) [2]>Jaxtor © (16.05.03 16:26)
>Всего знать нельзя.
Естественно ! Только это не причина нежелания прочитать элементарный хелп...:)
Jaxtor (2003-05-16 16:26:00) [3]Ну вот, в чем-то выигрываешь, в чем-то проигрываешь...
Всего знать нельзя.
Johnmen (2003-05-16 16:22:00) [4]>Jaxtor © (16.05.03 16:12)
>Правда вот с WinAPI пока трудновато мне...
>Знаю только несколько десятков функций.
Это очень мало ! Надо знать по крайней мере 1000 !
:)))
Jaxtor (2003-05-16 16:12:00) [5]Правда вот с WinAPI пока трудновато мне...
Знаю только несколько десятков функций.
Johnmen (2003-05-16 15:47:00) [6]>Jaxtor © (16.05.03 15:38)
>> Зато я знаю IB API функции...
Наизусть ? И все параметры ? ДА ТЫ ПРОСТО КРУТ !!!
А мы все - ЛАМЕРЫ...:)
Jaxtor (2003-05-16 15:38:00) [7]> Зато я знаю IB API функции...
Zacho (2003-05-16 15:36:00) [8]
> Jaxtor © (16.05.03 15:28)
Блин, ну сделай дисконнект/коннект и проследи, что бы это было единственное подключение к IB.
> А документацию по IB я читаю...
Не заметно. Иначе бы знал о DRI.
Кстати, в DataDef все расписано подробно и с примерами.
Jaxtor (2003-05-16 15:28:00) [9]>Zacho Думаешь все работает?
Неа.
This operation is not defined for system tables.unsuccessful metadata update.object PRODUCTTYPE is in use.
А документацию по IB я читаю...
Zacho (2003-05-16 15:24:00) [10]
> Avreliy (16.05.03 15:16)
Процедура вообще не нужна, достаточно триггера, а начиная с IB 5.0 в IB есть полноценная поддержка DRI (Declarative Referential Integrity) так что и триггер не нужен.
Господа, читайте же документацию, и не придется изобретать велосипеды !
Jaxtor (2003-05-16 15:21:00) [11]>Avreliy
Я думал об этом... Но у меня большая база и целиком основана на ссылочной целостности(не на триггерах). Нарушать единообразие не
желательно.
Zacho (2003-05-16 15:20:00) [12]
> 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.
Avreliy (2003-05-16 15:16:00) [13]А что, если создать триггер удаления для таблицы PRODUCTTYPE и в него вставить созданную ранее исполняемую процедуру, в которую будет передаваться параметр :PRODUCTTYPEID и, которая будет удалять необходимые строки из таблицы PROP_DESCR?
Jaxtor (2003-05-16 15:02:00) [14]>А вообще-то стоит почитать Data Definition Guide.
А я считаю, что лучше почитать книжку по реляционным базам данных
об организации ссылочной целостности между таблицами связанными
сложным ключом.
Jaxtor (2003-05-16 14:59:00) [15]>Zacho
This operation is not defined for system tables.
unsuccessful metadata update.
could not find UNIQUE INDEX with specified columns.
Zacho (2003-05-16 14:55:00) [16]
> 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:40:00) [17]мда... слишком сложный вопрос задал я....