2010-02-08 2 views
13

Как я перечисляю все таблицы, содержащие заданное имя столбца? Я использую версию Mysql 4.1.13-nt-log. Я знаю, версии менее 5 не имеют базы данных information_scheme.Список всех таблиц, содержащих заданное имя столбца

+0

встречный вопрос: зачем вам это нужно? :) – Bozho

+1

Если вы серьезно хотите это сделать, вы можете выводить результаты для SHOW TABLES и SHOW COLUMNS FROM в текстовый файл в командной строке, а затем использовать Perl и grep для поиска. – Yada

ответ

0

попробовать это:

mysqldump -u root -p –all-databases –single-transaction > all.sql 

, а затем сделать поиск старой школы, как в текстовом редакторе, найти


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

http://mike.kruckenberg.com/presentations/Creating_INFORMATION_SCHEMA.pdf

+0

Хорошее простое решение, но я бы предложил использовать no-data вариант, так как все, о чем вы заботитесь, это схема ... –

29

Найти все таблицы и столбцы, где имена столбцов, как условие поиска:

SELECT DISTINCT TABLE_NAME, COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME LIKE '%partial_column_name%' 
    AND TABLE_SCHEMA='YourDatabase'; 
+1

ОП был весьма специфичен в отношении НЕ использования information_schema, это не отвечает на вопрос. – buc

+1

+ 1, потому что это было то, что я искал при поиске. – PeteGO

+0

+1 по той же причине - решила мою конкретную проблему и спасла меня от времени. – Redboots

-2
select table_name,column_name,data_type,data_length 
from user_tab_columns 
where column_name LIKE 'WHATEVER_U_WANT' 
; 
0

Гораздо более легко

SELECT DISTINCT TABLE_NAME FROM your_schema.columns WHERE column_name = 'your_column_name'; 
Смежные вопросы