PostgreSQL’de Belirli Bir Kolon İsmini Tüm Tablolarda Arama
Büyük veritabanlarında, belirli bir column name (kolon ismi) ile hangi tablolarda çalışıldığını bulmak bazen zor olabiliyor. Özellikle projeler büyüdükçe ve tablo sayısı arttıkça, ilişkili tabloların yapısını anlamak çok önemli hale geliyor.
Neden Kolon İsmi Arama İhtiyacı Duyarız?
- Veritabanı yönetimi sırasında tablolar arası ilişkileri görmek için,
- Veri entegrasyonu ve raporlama sırasında aynı isimli kolonların yerini tespit etmek için,
- Kod optimizasyonu ve bakımda gereksiz tekrarları önlemek için.
PostgreSQL’de Belirli Bir Kolon İsmini Tüm Tablolarda Bulmak
Aşağıdaki SQL sorgusu, istediğiniz kolon adına sahip tüm tabloları ve şemalarını hızlıca listeler:
SELECT
t.table_schema,
t.table_name
FROM
information_schema.tables t
INNER JOIN
information_schema.columns c
ON
c.table_name = t.table_name
AND c.table_schema = t.table_schema
WHERE
c.column_name = 'id'
AND t.table_schema NOT IN ('information_schema', 'pg_catalog')
AND t.table_type = 'BASE TABLE'
ORDER BY
t.table_schema;
c.column_name = 'id' satırında aramak istediğiniz kolon adını yazabilirsiniz.
SQL Sorgusunun Açıklaması
- t.table_schema: Tablonun bulunduğu şemayı verir.
- t.table_name: Tablonun adını gösterir.
- c.column_name = 'id': Aramak istediğiniz kolon ismi.
Örnek Sorgu Sonucu
Bu sorguyu çalıştırdığınızda, örneğin aşağıdaki gibi bir tablo elde edebilirsiniz:
| table_schema | table_name |
|---|---|
| public | books |
| public | employees |
Sonuç
PostgreSQL’de bir kolon ismini hızlıca arayarak, tüm ilgili tabloları ve şemaları bulmak özellikle büyük veritabanlarında hayat kurtarıcı olabilir. Bu ve benzeri pratik SQL bilgilerinin devamı için sitemizi takip edebilirsiniz!
Sık Sorulan Sorular (SSS)
Bu yöntemi diğer veritabanlarında da kullanabilir miyim?Hayır, bu sorgu PostgreSQL için geçerlidir. Diğer veritabanlarında farklı sorgular gerekebilir.
Kolon adını dinamik olarak arayabilir miyim?
Evet, sorguda
'id' yerine dilediğiniz kolon adını kullanabilirsiniz.