Saya telah membuat tabel di postgreSQL. Saya ingin melihat pernyataan SQL yang digunakan untuk membuat tabel tetapi tidak bisa mengetahuinya.
Bagaimana saya mendapatkan create table
pernyataan SQL untuk tabel yang ada di Postgres via commandline atau pernyataan SQL?
postgresql
Raja
sumber
sumber
pg_dump mydb -t mytable --schema-only
.aschema
dengan nama skema sebenarnya dari tabel yang ingin Anda buang. Gantiatable
dengan nama tabel sebenarnya dari tabel yang ingin Anda buang.pg_dump mydb -t '"TableName"' --schema-only
- jika pg_dump tidak akan mengenali nama tabel.Solusi saya adalah masuk ke postgres db menggunakan psql dengan opsi -E sebagai berikut:
Dalam psql, jalankan perintah berikut untuk melihat sql yang digunakan postgres untuk menghasilkan
pernyataan tabel uraian:
Berdasarkan sql yang
di-echo setelah menjalankan perintah-perintah yang dijelaskan ini, saya dapat mengumpulkan fungsi plpgsql berikut:
Berikut adalah fungsinya:
Dan berikut ini adalah pernyataan drop jika Anda tidak ingin fungsi ini bertahan secara permanen:
sumber
NULL
untuk saya ... Dan bagaimana skema ini ditangani? Haruskah ia mengembalikan pernyataan CREATE untuk tabel dengan nama yang ditentukan dari semua skema?Hasilkan pernyataan create table untuk tabel di postgresql dari linux commandline:
Pernyataan ini menampilkan tabel buat pernyataan sql untuk saya:
Penjelasan:
pg_dump membantu kami mendapatkan informasi tentang database itu sendiri.
-U
singkatan dari username. Pengguna pgadmin saya tidak memiliki kata sandi, jadi saya tidak perlu memasukkan kata sandi. The-t
berarti pilihan tentukan untuk satu meja.--schema-only
berarti hanya mencetak data tentang tabel, dan bukan data dalam tabel. Inilah perintah persis yang saya gunakan:sumber
Jika Anda ingin menemukan pernyataan create untuk tabel tanpa menggunakan pg_dump, Query ini mungkin cocok untuk Anda (ubah 'tablename' dengan apa pun nama tabel Anda dipanggil):
ketika dipanggil langsung dari psql, itu berguna untuk melakukan:
Juga, fungsi generate_create_table_statement di utas ini berfungsi dengan sangat baik.
sumber
pg_dump
. berguna semua +1 yang samaDean Toader Luar biasa! Saya akan sedikit memodifikasi kode Anda, untuk menunjukkan semua kendala dalam tabel dan untuk memungkinkan menggunakan topeng regexp dalam nama tabel.
Sekarang Anda dapat, misalnya, membuat kueri berikut
yang hasilnya seperti ini:
untuk setiap tabel pengguna.
sumber
Metode termudah yang dapat saya pikirkan adalah menginstal pgAdmin 3 ( ditemukan di sini ) dan menggunakannya untuk melihat database Anda. Secara otomatis akan menghasilkan kueri yang akan membuat tabel tersebut.
sumber
Jika Anda ingin melakukan ini untuk berbagai tabel sekaligus, Anda ingin menggunakan -t switch beberapa kali (perlu beberapa saat untuk mencari tahu mengapa daftar yang dipisahkan koma tidak berfungsi). Juga, dapat bermanfaat untuk mengirim hasil ke file outfile atau pipa ke server postgres di komputer lain
sumber
Bahkan lebih banyak modifikasi berdasarkan respons dari @vkkeeper. Menambahkan kemungkinan ke tabel kueri dari skema tertentu.
sumber
Berikut ini adalah versi sedikit membaik dari shekwi 's permintaan .
Ini menghasilkan batasan kunci utama dan mampu menangani tabel sementara:
Gunakan
table_name
parameter untuk menentukan nama tabel.sumber
sumber
Ini adalah variasi yang berfungsi untuk saya:
pg_dump -U user_viktor -h localhost unit_test_database -t floorplanpreferences_table --schema-only
Selain itu, jika Anda menggunakan skema, tentu saja Anda harus menentukannya juga:
pg_dump -U user_viktor -h localhost unit_test_database -t "949766e0-e81e-11e3-b325-1cc1de32fcb6".floorplanpreferences_table --schema-only
Anda akan mendapatkan output yang bisa Anda gunakan untuk membuat tabel lagi, jalankan saja output itu di psql.
sumber
Solusi sederhana, dalam SQL tunggal murni. Anda mendapatkan ide, Anda dapat memperluasnya ke lebih banyak atribut yang ingin Anda tampilkan.
Keluaran:
sumber
Berikut ini adalah pernyataan tunggal yang akan menghasilkan DDL untuk tabel tunggal dalam skema tertentu, termasuk kendala.
sumber
Seperti jawaban lain yang disebutkan, tidak ada fungsi bawaan yang melakukan ini.
Berikut adalah fungsi yang mencoba untuk mendapatkan semua informasi yang akan diperlukan untuk mereplikasi tabel - atau untuk membandingkan disebarkan dan diperiksa dalam ddl.
Fungsi ini menghasilkan:
contoh
menghasilkan
sumber
Dalam pgadminIII database >> skema >> tabel >> klik kanan pada 'tabel Anda' >> skrip >> 'Pilih salah satu (Buat, Sisipkan, Perbarui, Hapus ..)'
sumber
Berikut ini kueri dengan beberapa pengeditan,
sumber