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

Вниз

FireBird   Найти похожие ветки 

 
DrDe   (2007-02-19 14:07) [0]

Как создавать связи в таблицах FireBird.?


 
unknown ©   (2007-02-19 14:11) [1]

alter table xxx add constraint и т.д.
Это называется DDL и для работы с FB надо знать как DDL, так и DML.
SQL вобщем.


 
Sergey13 ©   (2007-02-19 14:13) [2]

Скачай ИБЭксперт - там все по русски и мышкой. http://www.ibexpert.com/
Есть еще вариант выучить DDL подмножество языка SQL.


 
DrDe   (2007-02-19 14:18) [3]


> unknown ©   (19.02.07 14:11) [1]


> Sergey13 ©   (19.02.07 14:13) [2]

Да блин разобраться не могу SQL 2000 пересел думал за один день разбирусь....
Не тут то было... :o)


 
Sergey13 ©   (2007-02-19 14:35) [4]

> [3] DrDe   (19.02.07 14:18)

Ну так скачай тулзу то. Бесплатно.


 
Val ©   (2007-02-19 15:21) [5]

"А в Конотопе что, небо твердое?"(с)
"связи в таблицах" мсскл иначе создаются?


 
Romkin ©   (2007-02-19 15:28) [6]

Val ©   (19.02.07 15:21) [5] Они там с извращениями делаются вроде :)


 
Romkin ©   (2007-02-19 15:31) [7]

Да и фиг ты за день разберешься в версионнике, пересев с блокировочника :))


 
Desdechado ©   (2007-02-19 15:35) [8]

> Да и фиг ты за день разберешься в версионнике, пересев с  блокировочника
B каким боком это к FK относится?


 
Romkin ©   (2007-02-19 15:39) [9]

Desdechado ©   (19.02.07 15:35) [8] Это я телепаю. Щаз временные таблицы искать будет... Блокировки учитывать, которых нет...


 
Reindeer Moss Eater ©   (2007-02-19 15:40) [10]

Связи таблиц - вещь чисто умозрительная. Их не создают. Их имеют ввиду.


 
kaif ©   (2007-02-19 16:38) [11]

Reindeer Moss Eater ©   (19.02.07 15:40) [10]
Связи таблиц - вещь чисто умозрительная. Их не создают. Их имеют ввиду.


Это, ИМХО, верный ответ.

Что касается Foreign Key, то эту тему принято называть "декларативной ссылочной целостностью". И вопрос тогда должен звучать так "как защитить ссылочную целостность данных на уровне связей между таблицами?".

В IB внешние ключи создаются при помощи команд вида:

ALTER TABLE
 <имя таблицы>
ADD COSTRAINT
 <имя констрейнта (удобно потом удалять констрейнт, имеющий имя)> FOREIGN KEY
 (<список имен колонок через запятую>)
REFERENCES <таблица, имеющая уникальный ключ> (<список имен колонок через запятую, которые соответствуют уникальному ключу>)

Например:

ALTER TABLE sales ADD CONSTRAINT fk_sales_customer FOREIGN KEY (customer_id) REFERENCES customer(id)

После такого объявления в таблицу sales невозможно будет добавить запись, если customer_id в этой записи отсутствует в поле id таблицы customer. И обратное также верно. Невозможно будет удалить из таблицы customer запись, значение id которой используется в таблице sales и невозможно будет изменить значение id в таблице customer, если это значение используется в поле customer_id таблицы sales.

Объявление можно дополнить фразами ON DELETE CASCADE. Тогда удаление записи из таблицы customer станет возможным. Просто оно повлечет предварительное удаление ВСЕХ записей из sales, которые ссылаются на это значение id. Иногда я использую это дополнение к декларации внешнего ключа.

Объявление можно дополнить и фразой ON UPDATE CASCADE. Тогда изменение id, который используется, повлечет изменение customer_id у всех записей в sales. Я лично это дополнение никогда не использую, так как пользуюсь суррогатными ключами для организации связей между таблицами.


 
Desdechado ©   (2007-02-19 16:41) [12]

kaif ©   (19.02.07 16:38) [11]
Прямо лекция какая-то ;)



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

Форум: "Прочее";
Текущий архив: 2007.03.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.04 c
9-1144574516
ArtemESC
2006-04-09 13:21
2007.03.18
Открытые форматы моделей 3D...


15-1171883241
DrDe
2007-02-19 14:07
2007.03.18
FireBird


15-1171759732
koha
2007-02-18 03:48
2007.03.18
Идея как старую машину i3x86 научить загружатся с CDROM


15-1172127207
DrDe
2007-02-22 09:53
2007.03.18
3GP


15-1172222616
Floppy
2007-02-23 12:23
2007.03.18
Вторая ось на Висту





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский