もちろん、別の名前で同じデータベースにテーブルをコピーする簡単な方法はありますか。以下にリストしたものをいくつか試しましたが、
db2 "CREATE TABLE SCHEMA.NEW_TB COPY AS SELECT * FROM SCHEMA.OLD_TB WHERE 1 = 2"
db2 "SELECT INTO SCHEMA.NEW_TB FROM SCHEMA.OLD_TB"
db2 "SELECT * FROM SCHEMA.OLD_TB INSERT INTO SCHEMA.NEW_TB"
これらのいずれも動作しませんでしたdb2 v9.5を使用しています
選択部分を括弧で囲む必要があります。
CREATE TABLE SCHEMA.NEW_TB AS (
SELECT *
FROM SCHEMA.OLD_TB
) WITH NO DATA
動作するはずです。 @Gilbertがコピーしないと言ったすべてのことに注意してください。
DB2 v9.5と言うので、ここではLinux/Unix/Windows上のDB2を想定しています。
これを試して:
CREATE TABLE SCHEMA.NEW_TB LIKE SCHEMA.OLD_TB;
INSERT INTO SCHEMA.NEW_TB (SELECT * FROM SCHEMA.OLD_TB);
コピーされないオプションは次のとおりです。
2つの手順で問題なく動作します。
テーブルbu_xを(xからa、b、c、dを選択して)WITHデータなしで作成します。
bu_x(a、b、c、d)に挿入し、xからa、b、c、dを選択します。
すべての列をあるテーブルから別の既存のテーブルにコピーできます。
INSERT INTO table2 SELECT * FROM table1;
または、必要な列のみを別の既存のテーブルにコピーできます。
INSERT INTO table2(column_name(s))SELECT column_name(s)FROM table1;
またはSELECT * INTO BACKUP_TABLE1 FROM TABLE1