2010-02-08 32 views
13

Làm cách nào để tôi liệt kê tất cả các bảng có chứa tên cột đã cho? Tôi đang sử dụng phiên bản Mysql 4.1.13-nt-log. Tôi biết các phiên bản ít hơn 5 không có một DB information_scheme.Liệt kê tất cả các bảng có chứa tên cột đã cho

+0

một phản câu hỏi: tại sao bạn cần điều đó? :) – Bozho

+1

Nếu bạn thực sự muốn làm điều đó, bạn có thể xuất kết quả cho SHOW TABLES và HIỂN THỊ COLUMNS TỪ vào một tệp văn bản trong dòng lệnh, sau đó sử dụng Perl và grep cho tìm kiếm – Yada

Trả lời

0

thử điều này:

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

và sau đó làm cũng tìm kiếm theo cách cũ-trường trong một trình soạn thảo văn bản với tìm


thấy điều này ... trông đầy hứa hẹn, nhưng tôi không chắc chắn cách đầy tham vọng là bạn

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

+0

Một giải pháp đơn giản, nhưng tôi khuyên bạn nên sử dụng dữ liệu không có tùy chọn, vì tất cả các bạn quan tâm là lược đồ ... –

29

Tìm tất cả các bảng và cột nơi tên cột cũng giống như thuật ngữ tìm kiếm:

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

OP khá cụ thể về NOT sử dụng information_schema, điều này không trả lời câu hỏi. – buc

+1

+ 1 vì đó là những gì tôi đang tìm kiếm khi tìm kiếm. – PeteGO

+0

+1 vì lý do tương tự - đã giải quyết được vấn đề cụ thể của tôi và tiết kiệm thời gian cho tôi. – Redboots

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

dễ dàng hơn nhiều

SELECT DISTINCT TABLE_NAME FROM your_schema.columns WHERE column_name = 'your_column_name'; 
Các vấn đề liên quan