Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.06.05;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.013 c
1-13211
zapmax
2003-05-27 11:37
2003.06.05
Кол-во страниц в QReport-е


6-13348
VitaWED
2003-04-04 16:44
2003.06.05
Список писем Outlook


14-13421
Spartak
2003-05-19 07:50
2003.06.05
Проблема с написанием сервиса


1-13235
sKeeper
2003-05-27 09:13
2003.06.05
Как поставить моё окно поверх всего отображаемого ?


14-13417
Дмитрий К.К.
2003-05-19 06:09
2003.06.05
Именинники 19 мая





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский