powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Получение списка внешних ключей по таблице
12 сообщений из 12, страница 1 из 1
Получение списка внешних ключей по таблице
    #38803987
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Есть таблица table_name. Мне нужно получить список внешних ключей по этой таблице.
Сразу скажу, что обращение к БД information_schema мне не подходит по определенным причинам.

В инете нашел такое:
"Список ограничений внешнего ключа таблицы T можно также вывести при помощи команды:
Код: sql
1.
SHOW TABLE STATUS FROM yourdatabasename LIKE 'T'


Ограничения внешнего ключа выводятся в комментариях к таблице"

Выполнил такой запрос. Не пойму, где там внешние ключи? В поле comment пусто.
Остальная информация вообще к внешним ключам никакого отношения не имеет!
Внешние ключи по рассматриваемой таблице 100% есть.

Всем заранее спасибо!
...
Рейтинг: 0 / 0
Получение списка внешних ключей по таблице
    #38804002
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А show create table констрейнты не показывает? что-то не помню. Индексы точно показывает...
...
Рейтинг: 0 / 0
Получение списка внешних ключей по таблице
    #38804004
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Показывает. Но я create table собираю "ручками".
И мне нужно "самостоятельно" вытащить внешние ключи ...
...
Рейтинг: 0 / 0
Получение списка внешних ключей по таблице
    #38804010
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhay,

ЯННП :) Если вы сами собираете create, то таблицы на момент собирания ещё нет. Так какие могут быть на ней внешние ключи?
...
Рейтинг: 0 / 0
Получение списка внешних ключей по таблице
    #38804025
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhayобращение к БД information_schematanglirshow create tableИмхо, больше малокровных путей нет.
...
Рейтинг: 0 / 0
Получение списка внешних ключей по таблице
    #38804806
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯННП
Шо це? )))

авторЕсли вы сами собираете create, то таблицы на момент собирания ещё нет. Так какие могут быть на ней внешние ключи?
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
$result = '';
$indexes = '';
$constraints = '';
$d = mysql_query('show full tables from [db_name]');
$r = mysql_num_rows($d);
for($i=1; $i<=$r; $i++)
{
    $rec = mysql_fetch_assoc($d);
    // Получаем индексы по таблице
    // Получаем ключи по таблице
}
$result .= 'CREATE TABLE '.$rec;
$result .= $indexes;
$result .= $constraints;
// Ну и т.д.



авторИмхо, больше малокровных путей нет.
Обращение к information_schema нефига не малокровный ))
Я создавал недавно топик, когда написал функцию дампа чисто через таблицы information_schema.
И на больших базах скрипт не успевал выполняться, падал. Мне посоветовали использовать SHOW-запросы.
Переписал. Стало лучше. Думал любые DDL можно получить с помощью SHOW ...
...
Рейтинг: 0 / 0
Получение списка внешних ключей по таблице
    #38804809
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhayОбращение к information_schema нефига не малокровный ))Все относительно. По сравнению с разбором исходников MySQL и чтением его сырых файлов - сущий пустяк :)
...
Рейтинг: 0 / 0
Получение списка внешних ключей по таблице
    #38804812
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhayЯ создавал недавно топик, когда написал функцию дампа чисто через таблицы information_schema.
И на больших базах скрипт не успевал выполняться, падал.Возможно, есть смысл попробовать создавать копию этих таблиц с необходимыми индексами перед основной работой.
...
Рейтинг: 0 / 0
Получение списка внешних ключей по таблице
    #38804821
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВсе относительно. По сравнению с разбором исходников MySQL и чтением его сырых файлов - сущий пустяк :)
Ну если так, то, действительно, пустяк ))

авторВозможно, есть смысл попробовать создавать копию этих таблиц с необходимыми индексами перед основной работой.
А вот тут что-то не совсем понял идею. Можно чуть поподробнее?
...
Рейтинг: 0 / 0
Получение списка внешних ключей по таблице
    #38804828
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhayавторВозможно, есть смысл попробовать создавать копию этих таблиц с необходимыми индексами перед основной работой.
А вот тут что-то не совсем понял идею. Можно чуть поподробнее?Нужные таблицы из information_schema скопировать в обычные таблицы. Создать необходимые индексы. Потом использовать эти таблицы вместо information_schema.
...
Рейтинг: 0 / 0
Получение списка внешних ключей по таблице
    #38804872
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ааа. Интересная идея!
Но тут тоже есть подводный камень: при изменение структуры таблицы придется вручную вносить эти изменения в скопированные таблицы. Но буду пробовать и сравнивать производительность. Спасибо!
...
Рейтинг: 0 / 0
Получение списка внешних ключей по таблице
    #38805124
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhayпри изменение структуры таблицы придется вручную вносить эти изменения в скопированные таблицыЗачем вручную? Вставьте этот фрагмент непосредственно перед основной работой и пусть все вместе выполняется каждый раз, когда это надо.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Получение списка внешних ключей по таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]