Bir defada birkaç sütun eklememiz ve düşürmemiz gereken bir test ortamında kullanılan bir postgre veritabanında bir tablo var. Sorun, postgres en fazla 1600 sütun içermesi ve bu sayının bırakılan sütunlar içermesidir. Masamın hiçbir zaman 1600 toplam 'un-dropped' sütununa sahip olmayacak, ancak zamanla 1600'den fazla düşüşle birikir.Temizle bırakılan sütunlar hakkında bilgi edinme bilgileri
Ben VACUUM
ve VACUUM FULL
kullanarak denedim ve ben kendi, sütunların tümünü tarayıp düştü sütunlarından hafızasını temizlemek için postgres neden türü (ALTER TABLE table ALTER COLUMN anycol TYPE anytype
) ama hiçbiri olarak varolan sütun yeniden döküyor denedim bu sıfırlama sonrası '' sütun numarası ''.
Bunun, tüm tabloyu kopyalayarak çözülebileceğini biliyorum, ancak bunun kendi sorunları var ve ayrı bir sorudur.
Postgre'lerin sütunları düşürdüğünü unutturmanın bir yolu olduğunu biliyor musunuz?
Postgre'lerin böyle uygulamalar için tasarlanmadığını biliyorum, ancak neden bu şekilde uygulamaya koyduğumuzu anlamayacağım. Kullanmak için alternatif bir araç varsa, bunu duymak isterdim, ancak yine de buna bir çözüm bulmak isterim.
Masada VACUUM'u denediğinizi söylediniz. VAKUM DOLU ne hakkında? Ya da belki de 'ALTER TABLE tablo ALTER COLUMN anycol TYPE anytype; ', bir sütunu halihazırda sahip olduğu türe göre değiştirerek. –
Zaten öğrendiğiniz gibi en az iki yol var1): CREATE TABLE new AS select * FROM the_table; şeyleri yeniden adlandırmak; Biri pg_dump - t thetable; masayı bırak; tabloyu pg_dump sonuçlarından yeniden oluşturun. BOTH vakalarında FK kısıtlamalarını yeniden yapılandırmanız gerekecektir (bu, ikinci durumda daha basittir) – joop