PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

bilangan bulat di luar jangkauan dan ruang disk yang tersisa terlalu kecil untuk mengonversi id ke bigint dan solusi lainnya

Komentar Scott Marlowe dan Vao Tsun berhasil:

di server (linux) buka terminal

arahkan ke tempat yang diinginkan untuk namespace baru

buat direktori:mkdir dirname

berikan kepemilikan pada postgres:chown postgres:postgres dirname

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

letakkan tabel di tablespace:alter table tbl set tablespace '/path/dirname'

lakukan apa yang menghabiskan begitu banyak ruang disk:ALTER TABLE tbl ALTER COLUMN id TYPE BIGINT;

ubah tablespace kembali:alter table tbl set tablespace pg_default

hapus tablespace:Saya melakukannya di pgadmin4 di Tablespaces simpul/objek

(Itu dari ingatan. Beri tahu saya jika saya melewatkan sesuatu.)

Sunting:Ini memiliki efek samping menulis ulang seluruh tabel seperti ruang hampa penuh yang membebaskan ruang disk yang mati.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Akses DB RDS Pribadi Dari VPC Lain

  2. PostgreSQL generate_series() dengan fungsi SQL sebagai argumen

  3. sql - kelompokkan dalam rentang untuk memasukkan rentang tanpa nilai

  4. PostgreSQL:Bagaimana cara SUM atribut termasuk bidang JSONB, dan mempertahankan bentuk tabel?

  5. Apakah INSERT RETURNING dijamin untuk mengembalikan barang dalam urutan yang benar?