サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
mylifeno3.blog.fc2.com
既存テーブルを基に新しいテーブルを作成する場合、 CREATE TABLE B AS SELECT * FROM A WHERE <条件>; →全レコードをコピーしたい場合はWHERE句を省略 のようなSQLを利用することになると思いますが、PostgreSQLで以下のようにテーブルをコピーできないか? という問い合わせが来ました。 ・同じDB内に別名のテーブルとしてコピーする。 ・テーブルの中身はコピーしない。 ・制約/インデックスもコピーする。 現状、pg_dumpでテーブル定義をテキストでダンプし、そのテキストのテーブル名を別名に変えてリストア、という方法で実現しているようなのですが、より簡単にテーブルをコピーできないものだろうか…、という相談でした。 ちょいと調べてみたところ、CREATE TABLE文でLIKE句を使えば上手くいくことが分かり、その内容を伝えて無事に解決しました。
このページを最初にブックマークしてみませんか?
『mylifeno3.blog.fc2.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く