web-dev-qa-db-ja.com

mysqlデータベースをgrepするにはどうすればよいですか?

MySqlデータベースのすべての定義済みテーブル、列、ストアドプロシージャなどを取得するための、気の利いたヘルパー関数/メソッドを探しています。

SQLServerにも似たようなものがありました。

22
Aaron Fi

INFORMATION_SCHEMAデータベース内:

select * from columns WHERE TABLE_NAME LIKE '%tablename%' AND COLUMN_NAME LIKE '%columnname%'

詳細はこちら: http://dev.mysql.com/doc/refman/5.0/en/information-schema.html

わかりました、それはあなたの質問に完全に答えるわけではありませんが、あなたはここからあなたが望むようにそれをまとめることができるはずです。

11
Sarel Botha

mysqldump --compact --skip-extended-insert -u root -proot mydb | grep "interesting string"

35
ykaganovich

ここには、出力を格納するためのテーブルを作成し、information_schemaデータベースをループするMySQLのストアドプロシージャ( http://forge.mysql.com/tools/tool.php?id=232 )があります。すべてのデータベースのテーブル名と列名を取得するためのCOLUMNSテーブル。次に、where条件で適切な検索文字列を使用して、各列のdatabase.tableでcount()クエリを実行します。 count()> 0の場合、その特定の列には検索語があるため、そのトリプレット(データベース名、テーブル名、列名)がテーブルに挿入されます。テーブルから*を最後に選択して、検索語を持つそれぞれのデータベーステーブルと列の名前を表示します。

0
NexusRex

または単純なMySQLWorkbench->データベース->テーブルデータの検索...

0

Common Resource Grep(crgrep)は、テーブル/列の名前とデータの一致を検索し、MySQLをサポートします。

http://sourceforge.net/projects/crgrep/

また、アーカイブに埋め込まれたコンテンツなど、検索が難しい他のリソースも検索します。私はオープンソースツールとしてcrgrepを開発しました。

0
Craig