Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как узнать на какую таблицу ссылается внешний ключ?

Soerx Знаток (281), на голосовании 2 года назад
Пишу курсовую программу для работы с различными базами данных, то есть, заранее я не знаю, какие есть таблицы в базе, какие поля в таблицах, и какого они типа.

Я загружаю список таблиц и отображаю пользователю кнопки с их названиями. Кликая на на определенную из них генерируется запрос на отображение данных из этой таблицы, и появляются кнопки добавления, изменения и удаления записей.

Необходимо при добавлении и изменении записи в таблице, узнать какие поля являются внешними ключами и на какие таблицы они ссылаются.

Хочу сделать окно добавления/изменения записи, и чтобы был дроп-бокс с выпадающим списком возможных значений для полей внешних ключей.

Не могу никак понять только следующие моменты:
1) как узнать является ли поле внешним ключом
2) и на какую таблицу ссылается внешний ключ

Какие для этого нужно отправить запросы?
Дополнен 2 года назад
Работаю с базами данных на MySQL, программу пишу на C# WPF.

Хочу узнать, как написать запрос для базы данных, который будет возвращать название таблицы, на которую ссылается поле внешнего ключа.
И как написать запрос-проверку для поля, является ли оно внешним ключом?
Или ещё лучше структуру таблицы, с типами полей и описанием первичных и внешних ключей, и таблиц с которыми связаны внешние ключи (по возможности одним запросом узнать всю необходимую информацию).
Голосование за лучший ответ
Екатерина Кузнецова Просветленный (21576) 2 года назад
а разве для экселя нужен ключ
SoerxЗнаток (281) 2 года назад
причем тут Эксель? работаю с базами данных на MySQL, программу пишу в C# WPF.
Я хочу узнать, как написать запрос для базы данных, который будет возвращать название таблицы, на которую ссылается поле внешнего ключа.
Павел Михаловский Просветленный (36173) 2 года назад
SELECT
TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
REFERENCED_COLUMN_NAME = '';
Набираешь это в mysql и смотришь. Ну или через какую-нибудь прогу для работы с mysql (phpmyadmin например)
Похожие вопросы