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

Bagaimana cara menerjemahkan PostgreSQL OID menggunakan python

Anda dapat mengonversi "OID" menjadi text hanya dengan casting - dengan menyediakan OID (Object Identifier) sebenarnya adalah regtype (subtipe OID untuk tipe terdaftar) seperti yang akan Anda dapatkan dari fungsi pg_typeof() .

Postgres biasanya akan menampilkan nilai dari tipe data regtype sebagai text kepada pengguna. Contoh:

SELECT pg_typeof('2013-1-1'::date);
 pg_typeof
-----------
 date

Sementara secara internal itu adalah OID:

SELECT pg_typeof('2013-1-1'::date)::oid;
 pg_typeof
-----------
      1082

Jika klien Anda tidak melakukan hal yang sama, Anda dapat memaksanya dengan pemeran eksplisit:

SELECT pg_typeof('2013-1-1'::date)::text;
SELECT 1082::regtype::text;

Dapatkan jenis semua kolom dari katalog sistem

Tidak jelas bagaimana Anda benar-benar mengambil jenis. Pertimbangkan kueri ini untuk mendapatkan informasi lengkap:

SELECT attname
     , atttypid::regtype AS base_type
     , format_type(atttypid, atttypmod) AS full_type
FROM   pg_catalog.pg_attribute
WHERE  attrelid = 'public.tbl'::regclass  -- your table name here
AND    attnum > 0
AND    NOT attisdropped
ORDER  BY attnum;

  attname   |          base_type          |         full_type
------------+-----------------------------+-----------------------------
 age_id     | integer                     | integer
 age        | text                        | text
 ageabk     | character                   | character(2)
 foo        | boolean                     | boolean
 log_up     | timestamp without time zone | timestamp without time zone

Perhatikan bahwa format_type(..) menampilkan tipe termasuk pengubah.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL :Buat catatan lengkap dari 2 tabel

  2. Gabungkan kueri pada 50 juta+ tabel baris di PostgreSQL

  3. Hapus PostgreSQL dengan gabungan dalam

  4. Bagaimana Saya Dapat Mengisi Bidang Basis Data SQLAlchemy Secara Otomatis? (Flask-SQLAlchemy)

  5. Periksa apakah kolom ada ketika ada beberapa tabel dengan nama yang sama dalam skema yang berbeda (PSQL 8.2)