私はdb2のテーブルの名前を変更しようとしています
rename table schema1.mytable to schema2.mytable
しかし、次のエラーメッセージが表示されます:
the name "mytable" has the wrong number of qualifiers.. SQLCODE=-108,SQLSTATE=42601
ここで何が問題なのですか.... IBM publib ドキュメントの正確な構文を使用しています。
特定のオブジェクトのスキーマを変更することはできません。再作成する必要があります。
それを行うにはいくつかの方法があります:
以下を使用してテーブルを再作成できます。
Create table schema2.mytable like schema1.mytable
db2lookツールを使用して DDL を抽出できます。
これらの最後の 2 つのオプションは、テーブル構造を作成するだけであり、データをインポートする必要があります。テーブルを作成したら、さまざまな方法でデータを挿入します。
直接挿入
insert into schema2.mytable select * from schema1.mytable
カーソルからのロード経由
問題は、再作成する必要があるため、外交関係です。
最後に、エイリアスを作成できます。その方が簡単で、関係を処理する必要がありません。
次のステートメントを使用して、テーブルの名前を簡単に変更できます。
RENAME TABLE SCHEMA.TABLENAME TO NEWTABLENAME;
提供された例ではテーブルの名前を変更していません。別のスキーマに移動しようとしていますが、同じではありません。これについては、 db2moveツールを調べてください。
そのままにして、新しい名前とスキーマでエイリアスを作成するとどうなりますか。