PostgreSQL'de “varchar” ve “metin” türü arasındaki fark nedir?


Yanıtlar:


22

Bunun arka planı: Eski Postgres sistemi PostQUEL dilini kullanmış ve adlı bir veri türü kullanmıştır text(çünkü birisi bunun metin depolayan bir tür için iyi bir isim olduğunu düşündü). Daha sonra Postgres, dili olarak SQL'i kullanmaya dönüştürüldü. SQL uyumluluğunu sağlamak için, texttürü yeniden adlandırmak yerine yeni bir tür varchareklendi. Ancak her iki tür de dahili olarak aynı C rutinlerini kullanır.

Şimdi, bir dereceye kadar ve bazı yerlerde, textbaşka hiçbir şeyin türetilememesi durumunda varsayılan bir tür olarak sabit kodlanmıştır. Ayrıca, çoğu işlev yalnızca textbağımsız değişken almak veya geri dönmek olarak kullanılabilir text. İki tür ikili uyumludur, bu nedenle döküm önemsiz bir ayrıştırma zamanı işlemidir. Ancak textkullanımı hala sistem için daha doğaldır.

Ancak bu ince noktaların yanı sıra, belirgin bir fark yoktur. Hangisi size daha güzel görünüyorsa onu kullanın. ;-)


Ah iyi bir açıklama. 'Metin' kullanacağım, çünkü belirli bir ürünün faydasını engelleyen uyumluluğu umursamıyorum. Teşekkürler!
Eonil

1

Benzer soruya bakın . Jist, hiçbir farkın olmaması, ancak daha fazla alan kullandığı ancak performansı iyileştirmediği varchar(n)için genellikle sizin lehinize olmayan bir maksimum uzunluk belirtmektir .


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.