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

Mengganti nama nilai enum menghasilkan Hubungan Jenis Tidak ditemukan

Mengganti nama nilai enum hanya didukung dimulai dengan Postgres 10.

Seperti yang didokumentasikan dalam manual anda harus menggunakan rename VALUE , bukan rename attribute untuk mengganti nama nilai enum.

Nilai enum juga merupakan konstanta string, bukan pengidentifikasi. Oleh karena itu Anda perlu menyertakannya dalam tanda kutip tunggal, bukan tanda kutip ganda:

ALTER TYPE public.enum_subscription_sub_frequency RENAME VALUE 'BI-WEEKLY' TO 'BI_WEEKLY';

Jika Anda bertanya-tanya mengapa Anda mendapatkan kesalahan "ketik ... tidak ada" dengan sintaks yang salah:

Saat Anda menggunakan opsi RENAME ATTRIBUTE ini menunjukkan bahwa tipe objek "biasa" harus diubah, jadi Postgres mencari tipe objek "nyata".

Tetapi "tipe enum" bukan "tipe objek" dan karenanya Postgres mengeluh tentang "tipe xyz tidak ada", daripada kesalahan sintaks.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penyatuan Koneksi PostgreSQL dengan PgBouncer

  2. Cara Mendapatkan Tanggal dan Waktu Saat Ini (Tanpa Zona Waktu) di PostgreSQL

  3. Postgresql lambat dihapus dari mana ada

  4. Disebabkan oleh:org.postgresql.util.PSQLException:FATAL:slot koneksi yang tersisa dicadangkan untuk koneksi superuser non-replikasi

  5. psycopg2 sebenarnya tidak memasukkan data