Apakah ada cara untuk menyalin struktur tabel ke tabel baru, tanpa data, termasuk semua kunci dan pembatas?
sql
postgresql
Alex S.
sumber
sumber
CREATE TABLE new (like old, extra_column text);
Nah, hal terdekat yang bisa Anda dapatkan dengan SQL adalah:
create table new ( like old including defaults including constraints including indexes );
Tapi itu tidak akan menyalin semuanya. Hal terpenting yang hilang adalah FOREIGN KEYs. Juga - pemicu juga tidak disalin. Tidak yakin tentang hal lain.
Cara lain adalah membuang struktur tabel, mengubah namanya di dump, dan memuatnya lagi:
Namun berhati-hatilah, sed sederhananya sed juga akan mengubah lama menjadi baru di tempat lain (misalnya jika Anda memiliki di kolom tabel Anda bernama "is_scolded" itu akan menjadi "is_scnewed").
Pertanyaannya sebenarnya adalah: mengapa Anda membutuhkannya - karena untuk berbagai tujuan, saya akan menggunakan teknik yang berbeda.
sumber
including constraints
tidak berfungsi pada PostgreSQL 8.3Untuk menyalin tabel secara lengkap, bentuk singkat menggunakan perintah TABLE juga dapat digunakan:
CREATE TABLE films2 AS TABLE films WITH NO DATA;
Lebih lengkapnya di sini
sumber
Lihatlah pgAdmin - sejauh ini cara termudah untuk melakukan apa yang Anda inginkan.
Klik kanan pada tabel, Skrip - Buat.
sumber
Bagaimana tentang
CREATE TABLE sample_table_copy AS (SELECT * FROM sample_table WHERE 1 = 2)
jawaban postgresql.org
sumber