Cevap hayır . Bundan kaçınabilmeniz için
bir uzunluk değiştirici eklemeyin varchar
. Çoğu zaman, zaten bir uzunluk kısıtlamasına ihtiyacınız yok. Sadece text
tüm karakter verileri için kullanın . Sahip varchar
olmayan RDBMS ile uyumlu kalmanız gerekiyorsa bunu yapın (uzunluk değiştirici yok) text
.
Performans neredeyse aynıdır - text
olduğu biraz daha hızlı nadir durumlarda ve uzunluğuna kontrol için döngüleri tasarrufu.
Gerçekten de bir maksimum uzunluk uygulamanız gerekiyorsa , bunun için hala text
bir kontrol kısıtlaması kullanın ve ekleyin :
ALTER TABLE tbl ADD CONSTRAINT tbl_col_len CHECK (length(col) < 51);
Tablo tanımını ve tüm bağlı nesneleri (görünümler, işlevler, yabancı anahtarlar, ...) ile uğraşmak zorunda kalmadan istediğiniz zaman böyle bir kısıtlamayı değiştirebilir veya bırakabilirsiniz.
Uzunluk değiştiricileri ile sadece girmek bu gibi sorunlar ya bu ya bu ...
PostgreSQL 9.1, ağrıyı hafifletmek için yeni bir özellik sundu. Burada sürüm notlarını alıntı yapıyorum :
ALTER TABLE ... SET DATA TYPE
Uygun durumlarda tablo yeniden yazılmamasına izin verin (Noah Misch, Robert Haas)
Örneğin, bir varchar
sütunu metne dönüştürmek artık tablonun yeniden yazılmasını gerektirmez. Bununla birlikte, bir varchar
sütunda uzunluk sınırını artırmak,
yine de bir tablo yeniden yazılmasını gerektirir.