# instinct: SQLを実行する前にカラム名を正確に確認する(特にPostgreSQLの統計ビュー)
SQLを実行する前にカラム名を正確に確認するべきというinstinct(自動学習)。特にPostgreSQLの統計ビュー(pg_stat_user_tables、pg_indexes等)では、`tablename`や`indexname`などのカラム名が直感と異なる場合があり、`column "tablename" does not exist`というエラーが連続発生した経験から学習された。コード作業全般に適用し、クエリ実行前に`\d ビュー名`やドキュメント参照でカラム名を事前確認することで防止できる。
## ポイント
- PostgreSQLの統計ビュー(pg_stat_*、pg_indexes等)はカラム名が直感と異なることがある
- 実行前に`\d ビュー名`またはドキュメントでカラム名を確認する習慣をつける
- `column "tablename" does not exist` / `column "indexname" does not exist` は事前確認で防止可能
- コードカテゴリの作業全般に適用するinstinct
## 関連ページ
[[SQLを実行する前にカラム名を正確に確認する(特に PostgreSQL の統計ビュー)]] [[PostgreSQL接続確認前にパスワード環境変数の有効性を検証する]] [[INSERT/UPDATE を含むバッチ実行前に UNIQUE 制約や外部キー制約を確認する]]
## 関連概念(未作成)
`PostgreSQL システムカタログ参照パターン` `pg_stat_user_tables カラム定義チートシート` `クエリ実行前プリフライトチェックリスト`
instinct: SQLを実行する前にカラム名を正確に確認する(特にPostgreSQLの統計ビュー)