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

Вниз

INFORMATION_SCHEMA - Foreign Key   Найти похожие ветки 

 
Ega23 ©   (2008-06-07 10:27) [0]

Что-то никак не могу в описании найти...
Вопрос такой: можно ли из INFORMATION_SCHEMA вытащить информацию, на кого ссылается FK?
Т.е. есть имя FK, через IS вытаскиваю, к каой таблице и какими столбцами привязан.
А как узнать, на какую ссылается?


 
Ega23 ©   (2008-06-07 10:31) [1]

Отставить, нашёл. Не совсем то, что хотел, но дальше можно раскрутить:

INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_NAME


 
версия для печати   (2008-06-07 11:48) [2]

sysforeignkeys?


 
Ega23 ©   (2008-06-07 11:49) [3]


> sysforeignkeys?


Где ты в Information_Schema или в системных таблицах Postgres видишь sysforeignkeys?


 
sniknik ©   (2008-06-07 12:01) [4]

> [D7, MSSQL, Postgres]
причем тут постгрес, оно не к нему относится.


 
Ega23 ©   (2008-06-07 12:08) [5]


> причем тут постгрес, оно не к нему относится.


Я пишу проверку существования объектов в БД. СУБД может быть как Postgres, так и MSSQL. Можно, конечно, писать для каждой СУБД свою проверку по системным таблицам, но в этом случае я становлюсь заложником версии сервера в рамках данной СУБД (где гарантия, что в очередном релизе Postgres не изменятся системные таблицы?).
В этом плане INFORMATION_SCHEMA даёт действительно более-менее универсальное решение.


 
Anatoly Podgoretsky ©   (2008-06-07 14:24) [6]

> Ega23  (07.06.2008 12:08:05)  [5]

Правильной дорогой идешь и не слушай других ни про какие системные таблицы и даже про функции обертки, например из АДО
INFORMATION_SCHEMA - это решение на уровне стандарта. Только тебе надо ознакомиться насчет набора таблиц в ней и их полей. Можно методом научного втыка, но лучше найти стандарт или описание.


 
sniknik ©   (2008-06-07 14:35) [7]

> ... и даже про функции обертки, например из АДО ...
???
OpenSchema в ADO их и использует... и ADO даже с большей вероятностью будет универсальнее (провайдер обязан подогнать методы под измененную базу, даже если изменится сам стандарт т.е. INFORMATION_SCHEMA. т.е. либо один в один тоже самое, либо не париться самому если вдруг изменилось "неменяемое". -> нужно будет просто сменить провайдера при подключении.)


 
Ega23 ©   (2008-06-07 14:35) [8]


> но лучше найти стандарт или описание.


Ну скажем так: я тупо открыл BOL для 2000 и читаю про все эти вьюхи. Какие-то интуитивно понятны, какие-то приходится искать.
Потом, фактически, сравниваю с тем, что в документации к Postgres написано.
Потом проверяю результат на обеих СУБД.

Просто с привязкой к childTable у FK затык небольшой вышел. Но уже всё ясно.


 
Anatoly Podgoretsky ©   (2008-06-07 15:54) [9]

> sniknik  (07.06.2008 14:35:07)  [7]

А если завтра не АДО или в АДО нет


 
Ega23 ©   (2008-06-07 16:01) [10]


> Anatoly Podgoretsky ©   (07.06.08 15:54) [9]


На самом деле проблема с IS есть - Oracle её не поддерживает. Но это не страшно, я заложился на некие "макроподстановки" в зависимости от типа СУБД.


 
sniknik ©   (2008-06-07 17:19) [11]

> А если завтра не АДО или в АДО нет
везде свои недостатки. с "другой стороны" тоже возможны неожиданности. вот прямо тут и пример ([10]), а провайдер должен это сам учесть (и учитывает... обычно. с провайдерами FB у меня были проблемы именно по схемам из 5-7(?) протестированных только один адекватный оказался. счас может больше подойдет правят же)



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

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

Наверх




Память: 0.49 MB
Время: 0.014 c
2-1228698109
S
2008-12-08 04:01
2009.01.18
IBEvents в DLL


2-1228290164
DimonS
2008-12-03 10:42
2009.01.18
Возможно ли сгруппировать записи без ограничивающих пробелов?


3-1212685846
Сергей
2008-06-05 21:10
2009.01.18
Вывод сведений из запроса в компонент StringGrid


3-1213092943
андр.
2008-06-10 14:15
2009.01.18
PHP & MS SQL Server 2000


15-1227217211
БарЛог
2008-11-21 00:40
2009.01.18
Посоветуйте хостинг