Büyük bir tablo için yeni kimlikler oluşturmaya çalışıyorum. İD'ler ardışık olmalıdır ve 0 'dan başlamalıdır (Yani diziyi kullanamıyorum). Şimdiye kadar ne ile gelip aşağıdaki fonksiyonudur: Gerçekten zaten id hakkındaki umurumda değil çünküPostgreSQL Sorgu Optimizasyonu
CREATE OR REPLACE FUNCTION genIds() RETURNS integer AS $$
DECLARE
edge RECORD;
i INTEGER := 0;
BEGIN
FOR edge IN SELECT * FROM network LOOP
UPDATE network SET id = i WHERE id = edge.id;
i := i + 1;
END LOOP;
RETURN i;
END;
$$ LANGUAGE plpgsql;
Ben daha çok yaklaşık kimliği ilgilendirmiyor istiyoruz = edge.id. Sayım (ağ) güncellemelerinden kurtulmanın bir yolu var mı?
Alkış, Daniel
Btw: siz _can_ '0' dizisinde bir sıralama yapın:' foo_seq dizisini yaratın 0 minvalue 0 ile başlayın; ' –
Dizilimlerin boşluksuz olmadığını garanti ettim mi? –
Bunlar doğru değil (Ben bunları kullanmak istemediğini düşündüm çünkü onları 0'dan başlayamazsın). –