PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

цяло число извън диапазона и оставащото дисково пространство е твърде малко за преобразуване на id в bigint и други решения

Коментарите на Скот Марлоу и Вао Цун проработиха:

на (linux) сървър отворете терминал

навигирайте до мястото, където искате да бъде новото пространство от имена

направете директория:mkdir dirname

дайте собственост на postgres:chown postgres:postgres dirname

създаване на таблица:CREATE TABLESPACE new_tbl_space LOCATION '/path/dirname'

поставете таблицата в табличното пространство:alter table tbl set tablespace '/path/dirname'

направете това, което заемаше толкова много дисково пространство:ALTER TABLE tbl ALTER COLUMN id TYPE BIGINT;

променете табличното пространство обратно:alter table tbl set tablespace pg_default

премахнете табличното пространство:Направих това в pgadmin4 в Tablespaces възел/обект

(Това беше по памет. Кажете ми, ако съм пропуснал нещо.)

Редактиране:Това има страничен ефект от пренаписване на цялата таблица като пълен вакуум, освобождаващ всяко мъртво дисково пространство.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Docker postgres не изпълнява init файл в docker-entrypoint-initdb.d

  2. Дърво на интервали за съхранение и заявки в PostgreSQL

  3. Как да получите състояние на изпълнявана заявка в базата данни postgresql

  4. Psql не можа да се свърже със сървъра:Няма такъв файл или директория, грешка 5432?

  5. celery задача не може да повтори множество редове от postgresql база данни с python