5

私はdb2のテーブルの名前を変更しようとしています

rename table schema1.mytable to schema2.mytable

しかし、次のエラーメッセージが表示されます:

the name "mytable" has the wrong number of qualifiers.. SQLCODE=-108,SQLSTATE=42601

ここで何が問題なのですか.... IBM publib ドキュメントの正確な構文を使用しています。

4

5 に答える 5

9

特定のオブジェクトのスキーマを変更することはできません。再作成する必要があります。

それを行うにはいくつかの方法があります:

  • テーブルが1つしかない場合は、テーブルをエクスポートおよびインポート/ロードできます。IDX 形式を使用すると、生成されたファイルに DDL が含まれます。別の形式を使用している場合は、テーブルが作成されています。
  • 以下を使用してテーブルを再作成できます。

    Create table schema2.mytable like schema1.mytable

  • db2lookツールを使用して DDL を抽出できます。

  • 特定のスキーマのスキーマ名を変更する場合は、ADMIN_COPY_SCHEMAを使用できます。

これらの最後の 2 つのオプションは、テーブル構造を作成するだけであり、データをインポートする必要があります。テーブルを作成したら、さまざまな方法でデータを挿入します。

  • 直接挿入

    insert into schema2.mytable select * from schema1.mytable

  • カーソルからのロード経由

  • ファイルからの読み込みまたはインポート (前の手順でエクスポートしたファイル)

問題は、再作成する必要があるため、外交関係です。

最後に、エイリアスを作成できます。その方が簡単で、関係を処理する必要がありません。

于 2013-11-15T15:29:55.363 に答える
7

次のステートメントを使用して、テーブルの名前を簡単に変更できます。

RENAME TABLE SCHEMA.TABLENAME TO NEWTABLENAME;
于 2014-12-17T12:59:08.987 に答える
0

提供された例ではテーブルの名前を変更していません。別のスキーマに移動しようとしていますが、同じではありません。これについては、 db2moveツールを調べてください。

于 2013-11-15T15:14:01.360 に答える
-1

そのままにして、新しい名前とスキーマでエイリアスを作成するとどうなりますか。

于 2014-02-13T06:36:31.817 に答える