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 texttüm karakter verileri için kullanın . Sahip varcharolmayan RDBMS ile uyumlu kalmanız gerekiyorsa bunu yapın (uzunluk değiştirici yok) text.
Performans neredeyse aynıdır - textolduğ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 textbir 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 TYPEUygun durumlarda tablo yeniden yazılmamasına izin verin (Noah Misch, Robert Haas)
Örneğin, bir varcharsütunu metne dönüştürmek artık tablonun yeniden yazılmasını gerektirmez. Bununla birlikte, bir varcharsütunda uzunluk sınırını artırmak,
yine de bir tablo yeniden yazılmasını gerektirir.