Перейти к содержимому

Mysql как посмотреть связи между таблицами

  • автор:

Как посмотреть связи таблиц sql

Для просмотра связей между таблицами в SQL можно использовать системную таблицу INFORMATION_SCHEMA . INFORMATION_SCHEMA содержит метаданные о базе данных, включая информацию о таблицах, столбцах и связях.

Чтобы просмотреть связи между таблицами, можно использовать запрос следующего вида:

SELECT tc.constraint_name, tc.table_name, kcu.column_name, ccu.table_name AS foreign_table_name, ccu.column_name AS foreign_column_name FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name AND tc.table_schema = kcu.table_schema JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name AND ccu.table_schema = tc.table_schema WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name='имя_таблицы'; 

Здесь имя_таблицы — это имя таблицы, связи которой вы хотите просмотреть.

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

MySQL. Как просмотреть схему данных (связи между таблицами)?

Нужно просмотреть связи в командной строке. Насколько я понял данные о связях хранятся в БД information_scheme. Но где именно и какой запрос нужно создать?

  • Вопрос задан более трёх лет назад
  • 8261 просмотр

Комментировать
Решения вопроса 2

Sanasol

нельзя просто так взять и загуглить ошибку
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

EgoRusMarch

megorit @EgoRusMarch Автор вопроса
C++ Developer

SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME LIKE "MY_TABLE";

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 2

kiberspy

Искать прогу, которая умеет делать «обратный» инжиниринг БД MySQL. (название к сожалению запамятовал!)
Такая апликуха тебе практически шедевр сделает в виде картинки 🙂
Копать в сторону — dit.isuct.ru/Publish_RUP/core.base_rup/guidances/t.
(MySQL увы не упоминается)

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

Rsa97

Для правильного вопроса надо знать половину ответа

Если эти связи не оформлены в явном виде через FOREIGN KEY, то хранятся они только в голове программиста, ни может ещё в документации на продукт. А FOREIGN KEY можно получить через SHOW CREATE TABLE `table_name`;

Alexander-Lugovskoy / gist:2a8e264204d65d0011579d5a698b1f1c

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

SELECT
`TABLE_SCHEMA`
`TABLE_NAME`,
`COLUMN_NAME`,
`REFERENCED_TABLE_SCHEMA`,
`REFERENCED_TABLE_NAME`,
`REFERENCED_COLUMN_NAME`
FROM
`INFORMATION_SCHEMA`.`KEY_COLUMN_USAGE`
WHERE
`REFERENCED_TABLE_NAME` IS NOT NULL;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Footer

© 2024 GitHub, Inc.

You can’t perform that action at this time.

Mysql как посмотреть связи между таблицами

Пользуюсь я phpMyAdmin и MySQL-Front

А как можно посмотреть визуально схему данных и связи в БД, т.е. как а Аксесе?

Сообщ. #2 , 25.10.07, 05:29

Full Member
Рейтинг (т): 5
Никак. И помоему Мускул вообще не поддерживает связи таблиц. ))
Сообщ. #3 , 25.10.07, 13:50
Рейтинг (т): 6
Цитата Michail04 @ 25.10.07, 05:29
И помоему Мускул вообще не поддерживает связи таблиц. ))

как это нет связей .
ну вы даете.
Сообщ. #4 , 25.10.07, 18:16
Unregistered
Цитата Michail04 @ 25.10.07, 05:29
Никак. И помоему Мускул вообще не поддерживает связи таблиц. ))

Зачем вы такое говорите?
Сообщ. #5 , 25.10.07, 20:45
Рейтинг (т): 231

По моему Michail04 прав, есть связи в запросе, и я как угодно могу связать таблицы, но нигде ведь не указано что таблица1 связана со второй?

Сообщ. #6 , 26.10.07, 04:43
Рейтинг (т): 6
Цитата Pr0[)!9Y @ 25.10.07, 20:45

По моему Michail04 прав, есть связи в запросе, и я как угодно могу связать таблицы, но нигде ведь не указано что таблица1 связана со второй?

вот я скопировала и поставила БД. В ней есть 2 таблицы.
Я сделала экспорт таблиц в файл *.sql
Вот что там написано:
Структура таблицы `Answers`

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *