3
125個のテーブルを持つデータベースで不明な特定の列を特定しようとしています。私はワイルドカードを探しています、例えば、 "%watcher%"。これは可能ですか?データベース内の不明なテーブルの特定の列を検索しますか?
125個のテーブルを持つデータベースで不明な特定の列を特定しようとしています。私はワイルドカードを探しています、例えば、 "%watcher%"。これは可能ですか?データベース内の不明なテーブルの特定の列を検索しますか?
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE column_name LIKE '%watcher%'
[AND table_schema = 'database']
これはあなたに少し詳細情報を示しています...
DECLARE @columnName as varchar(100)
SET @columnName = 'ColumnName'
SELECT t.name AS Table, c.name AS Column,
ty.name AS Type, c.max_length AS Length, c.precision AS Precision
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
INNER JOIN sys.types ty ON c.system_type_id = ty.system_type_id
WHERE c.name LIKE @columnName
ORDER BY t.name, c.name
はそれが役に立てば幸い!
これをシェルで実行したときにエラーが発生しました。 おそらく私はミスタイプですか? mysql> SELECT TABLE_NAME、COLUMN_NAME、DATA_TYPE、IS_NULLABLE、COLUMN_DEFAULTからINFORMATION_SCHEMA.COLUMNS WHERE column_name LIKE '%watcher%' [AND table_schema = 'database']; ERROR 1064(42000):SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックしてください。右側の構文は、[1]の[AND table_schema = 'database']の近くにあります。 –
角括弧を使用して条件を指定することはオプションです。 (LIKE '%watcher%'の後のすべてのもの)を削除するか、大括弧の文字だけを削除して、実際のデータベース名に置き換えてください(一重引用符を使用する) – ChssPly76
角括弧を削除して別のエラーが発生しました:ERROR 1146 (42S02):テーブル 'INFORMATION_SCHEMA.COLUMNS'は存在しません –