sql >> Database >  >> RDS >> PostgreSQL

geheel getal buiten bereik en resterende schijfruimte te klein om id om te zetten in bigint en andere oplossingen

De opmerkingen van Scott Marlowe en Vao Tsun werkten:

op (linux) server een terminal openen

navigeer naar waar u de nieuwe naamruimte wilt hebben

maak een directory:mkdir dirname

geef eigendom aan postgres:chown postgres:postgres dirname

tabel maken:CREATE TABLESPACE new_tbl_space LOCATION '/path/dirname'

zet de tabel in de tablespace:alter table tbl set tablespace '/path/dirname'

doen wat zoveel schijfruimte in beslag nam:ALTER TABLE tbl ALTER COLUMN id TYPE BIGINT;

verander de tablespace terug:alter table tbl set tablespace pg_default

verwijder de tablespace:ik deed dat in pgadmin4 in de Tablespaces knoop/object

(Dat was uit het hoofd. Laat het me weten als ik iets heb gemist.)

Bewerken:dit heeft als neveneffect dat de hele tabel wordt herschreven als een volledig vacuüm, waardoor dode schijfruimte wordt vrijgemaakt.




  1. Mysql SELECT-query werkte wel, nu 2 minuten later niet (zonder wijzigingen)

  2. Beste query om Oracle-index te raken met binds en null-waarden

  3. Hoe array-lijst in zigzag sorteren in PHP?

  4. Datumverschil in MySQL om leeftijd te berekenen