sql >> Databasteknik >  >> RDS >> PostgreSQL

heltal utanför intervallet och återstående diskutrymme för litet för att konvertera id till bigint och andra lösningar

Scott Marlowe och Vao Tsuns kommentarer fungerade:

på (linux) server öppna en terminal

navigera dit du vill att det nya namnområdet ska vara

skapa en katalog:mkdir dirname

ge äganderätt till postgres:chown postgres:postgres dirname

skapa tabell:CREATE TABLESPACE new_tbl_space LOCATION '/path/dirname'

placera tabellen i tabellutrymmet:alter table tbl set tablespace '/path/dirname'

gör det som tog upp så mycket diskutrymme:ALTER TABLE tbl ALTER COLUMN id TYPE BIGINT;

ändra tillbaka tabellutrymmet:alter table tbl set tablespace pg_default

ta bort tabellutrymmet:Jag gjorde det i pgadmin4 i Tablespaces nod/objekt

(Det var från minnet. Låt mig veta om jag missat något.)

Redigera:Detta har bieffekten att hela tabellen omskrivs som ett helt vakuum som frigör allt dött diskutrymme.




  1. PHP/SQL-databas som frågar efter god praxis och säkerhet

  2. mysql:få rekordräkning mellan två datum och tid

  3. med EXECUTE IMMEDIATE med flera samma bindningsargument

  4. mysqldump:Fick felnummer 32 på att skriva