Satırları 120 milyon kayıt içeren tablodan silmek zorundayım. En yüksek (entry_date) ve ikinci en yüksek (entry_date) verileri silinmemelidir.Postgresql grupta milyonlarca rekoru silme
Tablonun birçok kısıtlaması var. Tek Birincil anahtar İki YABANCI anahtar ve birincil anahtar üzerindeki dizin dışındaki iki dizin.
Halihazırda temp tablosunu oluşturmak ve gerekli verileri geçici tabloya taşımak olarak kullanmayı denedim. Daha sonra mevcut tabloyu bırakıp tekrar filtrelenmiş verileri geçici olarak ana tabloya taşıyoruz. Ancak kayıtları silmede bir yoluna ihtiyacım var. İlk sadece 1 milyon verileri gibi demet rekoru nasıl silinir
CREATE TABLE values
(
value_id bigint NOT NULL,
content_definition_id bigint NOT NULL,
value_s text,
value_n double precision,
order integer,
scope_id integer NOT NULL,
answer boolean NOT NULL,
date timestamp without time zone NOT NULL,
entry_date timestamp without time zone NOT NULL,
CONSTRAINT "value_PK" PRIMARY KEY (value_id),
CONSTRAINT content_definition_id_fk FOREIGN KEY (content_definition_id)
REFERENCES content_definition (content_definition_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT scope_fk FOREIGN KEY (scope_id)
REFERENCES scopes (scope_id) MATCH SIMPLE
ON UPDATE RESTRICT ON DELETE RESTRICT
)
-- Index: fki_content_definition_id_fk
-- Index: fki_value_value_scope_id
silinir ve üzerinde olmalıdır.
biz endeksi ve kısıtlamasını devre dışı bırakmak ve böylece herhangi bir vücut bana geçici engellilik indeksi ve Postgres'e yabancı anahtarın sözdizimi söyleyebilir misiniz that.If sonra silmeyi deneyin Can. – SUDARSHAN
Tablo tanımı ve bazı örnek tablo verileri ekleyin. – jarlh
tam tablo tanımı eklendi .. – SUDARSHAN