Jawabannya adalah tidak .
Jangan tambahkan pengubah panjang varchar
jika Anda bisa menghindarinya. Sebagian besar waktu, Anda sebenarnya tidak membutuhkan batasan panjang. Cukup gunakan text
untuk semua data karakter. Buat itu varchar
(tanpa pengubah panjang) jika Anda harus tetap kompatibel dengan RDBMS yang tidak memiliki text
.
Kinerja hampir sama - text
adalah sedikit lebih cepat dalam situasi langka , dan Anda menyimpan siklus untuk memeriksa panjang.
Jika Anda benar - benar perlu menegakkan panjang maksimum, masih menggunakan text
dan menambahkan batasan pemeriksaan untuk itu:
ALTER TABLE tbl ADD CONSTRAINT tbl_col_len CHECK (length(col) < 51);
Anda dapat memodifikasi atau menjatuhkan batasan seperti itu kapan saja tanpa harus mengacaukan definisi tabel dan semua objek yang bergantung (tampilan, fungsi, kunci asing, ...)
Dengan pengubah panjang Anda hanya mengalami masalah seperti ini atau ini atau ini ...
PostgreSQL 9.1 memperkenalkan fitur baru untuk mengurangi rasa sakit. Saya mengutip catatan rilis di sini :
Izinkan ALTER TABLE ... SET DATA TYPE
untuk menghindari penulisan ulang tabel dalam kasus yang sesuai (Noah Misch, Robert Haas)
Misalnya, mengonversi varchar
kolom ke teks tidak lagi membutuhkan penulisan ulang tabel. Namun, meningkatkan batasan panjang pada
varchar
kolom masih membutuhkan penulisan ulang tabel.