異なる名前の同じデータベースにテーブルを簡単にコピーする方法はありますか?同じデータベース内のテーブルのコピーを作成するDB2
: 私はこれらのdb2 "SELECT INTO SCHEMA.NEW_TB FROM SCHEMA.OLD_TB"
db2 "SELECT * FROM SCHEMA.OLD_TB INSERT INTO SCHEMA.NEW_TB"
なし私はこれを試してみてのDB2 V9.5
異なる名前の同じデータベースにテーブルを簡単にコピーする方法はありますか?同じデータベース内のテーブルのコピーを作成するDB2
: 私はこれらの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
@ギルバートはコピーされないと言ったすべてのことに注意を払う。
あなたはDB2 v9.5と言っているので、ここではLinux/Unix/Windows上のDB2を想定しています。 DB2 Vため
あなたの 'WHERE'条件はちょっと奇妙です。DB2がデータをコピーしないように偽の述語を使用している場合は、構造体をコピーするだけのためにここでは「WITH NO DATA」を使用して行うことができます。あるいは単に 'CREATE TABLE SCHEMA.NEW_TB LIKE SCHEMA.OLD_TB'を実行することもできます。 – bhamby
ありがとう@bhamby ..私の場合はbtwnです。db2はAIX上で動作しています –
「データなし」なぜコンテンツをコピーしたくないのですか?どのようにテーブルを作成し、挿入するのですか? –
を使用しています を働いた
db2 "CREATE TABLE SCHEMA.NEW_TB COPY AS SELECT * FROM SCHEMA.OLD_TB WHERE 1 = 2"
CREATE TABLE SCHEMA.NEW_TB LIKE SCHEMA.OLD_TB;
INSERT INTO SCHEMA.NEW_TB (SELECT * FROM SCHEMA.OLD_TB);
コピーされません0
のオプションが含まれます:
ありがとう@Gilbert –
私たちは、別のテーブルから既存のテーブルをすべての列をコピーすることができます。TABLE1 FROM table2の SELECT * INTO
INSERT。
それとも我々は別のものにしたい列だけ、既存のテーブルにコピーすることができます:表2 INTO
INSERT(COLUMN_NAME(S)) SELECT COLUMN_NAME(S)TABLE1 FROM を。
またはSELECT * INTO BACKUP_TABLE1 FROM TABLE1
なぜ1 = 2の条件を使用していますか? – Line
ああ、データをコピーするのではなく、スキーマだけをコピーしたいからです。あなたに気をつけて申し訳ありません;) – Line