Saya mencari cara sederhana untuk memilih semua kolom kecuali satu di psql.
Dengan psql
Maksudku baris perintah interaktif.
Saya akan senang dengan alat yang diperluas ke *
daftar nama kolom yang dikutip. Lalu saya bisa menghapus kolom untuk menghapus dengan tangan.
Pertanyaan saya hanyalah tentang penggunaan interaktif psql. Ini bukan duplikat pertanyaan orang yang tidak puas dengan standar sql dan yang ingin mengeksekusi sesuatu seperti "select * -foo".
postgresql
psql
guettli
sumber
sumber
information_schema
melalui fungsi pl / pgsql untuk menghasilkan daftar dengan cukup mudah, tetapi dengan cara itu akan ada dua query.desc
perintah dipsql
Jawaban:
Untuk mendapatkan daftar kolom dalam urutan default, tanpa kolom yang buruk:
Atau hanya
WHERE attrelid = 'mytable'::regclass
jika Anda mempercayai jalur pencarian untuk menyelesaikan skema yang tepat.quote_ident()
menambahkan tanda kutip ganda jika perlu.Saya mengajukan pertanyaan yang sama pada 2007 tentang pgsql-general . Itu Postgres 8.2 saat itu. Memori yang manis ...
Terkait:
sumber
\dq thetable bad_column
.q
untuk tugas tersebut. Mungkin opsi umum untuk seluruh keluarga\d
perintah untuk menunjukkan daftar nama-nama yang digabungkan? Suka\d- tbl
(mnemonik: kebalikan dari\d+
, yang menunjukkan lebih banyak detail). Hal ini akan memungkinkan untuk mendapatkan pada dasarnya setiap daftar telanjang objek. Tabel dalam skema:\dt- public.*
, fungsi dimulai dengan "f_foo":\df- f_foo*
dll - atau kolom dalam sebuah tabel:\d- mytbl
. Mirip dengan apa yang dilakukan perintah shellls
...Saya pikir saya telah menemukan apa yang Anda cari tetapi saya belum mengujinya sendiri.
Ada perangkat lunak yang disebut SequelPro yang akan memungkinkan Anda untuk memilih bidang dari tabel yang diberikan tetapi hanya untuk MySQL. Silakan baca dari bawah dari suatu tempat di tengah halaman:
Ada perangkat lunak lain bernama PSequel yang hanya berjalan di Mac dan mengklaim itu adalah tipe SequelPro yang dibuat untuk Postgres:
Semoga ini membantu.
sumber