Oldukça büyük bir tablomuz var (yaklaşık 1 milyar satır) ve kimlik tipini SERIAL
'dan BIGSERIAL
'a güncellemem gerekiyor; tahmin et neden?:). postgreSQL eşzamanlı olarak sütun türünü intint'ten bigint'e değiştir
execute "ALTER TABLE my_table ALTER COLUMN id SET DATA TYPE bigint"
Yine o sonsuza dek tabloyu kilit vuracak ve aşağı benim web hizmeti koydu.
Bu işlemi eşzamanlı olarak yapmanın oldukça basit bir yolu var mı (ne kadar sürecek olursa olsun)? Eğer eskiye, doldur, yeni bir sütun eklemek eskisini bırakıp yeni adlandırmak olabilir sizin id işaret yabancı anahtarlar yoksa
Teşekkür, bu çözüm oldukça zarif. Bana öyle geliyor ki hala bir problem var. New_id sütunlarını doldururken yeni satırlar tablomuza eklendiğinde, new_id değeri ayarlanmayacak ve benzersiz dizin oluşturma başarısız olabilir. Nexval varsayılan değerini ekleyene kadar ekleme sırasında yeni_id tetikleyici ayarı ekleyebilir miyiz? –
Benzersiz dizin, 'null' değerlerini yok sayar, bu nedenle tetiklemeye gerek yoktur. –
Eğer tablo my_table ekleme sütun new_id bigint eklemek; 'uzun zaman alır (1 saatten fazla sürer ve henüz bitmedi) ve diğer okuma işlemlerini engeller? –