かなりのデータを移動させるデータベース移行をテストしており、スキーマ(表の変更)も変更しています。 DB2ではREORG TABLEは暗黙的にトランザクションをコミットするようです
、あなたがテーブルを変更するたびに、あなたがそうでなければ、あなたが後にテーブルと何もできない
CALL SYSPROC.ADMIN_CMD('REORG TABLE tablename');
を呼び出す必要があります。
このテストでは、最後にROLLBACKを実行できるように、単一のSQLトランザクションで移行を実行しています。
しかし、REORG TABLEコマンドは、その特定のテーブルのトランザクションを暗黙のうちにコミットしているようです。私がロールバックした後、REORG TABLEと呼ばれるテーブルのスキーマが永続化されました。
DB2上でSQLトランザクションでマイグレーションがテストされていますか?
すべてのALTER TABLEの後にREORGを実行する必要はありません。 REORGを呼び出すためにADMIN_CMDを呼び出す必要はありません。何をしたいですか?何を変更/移行したいですか? –
これに続いて(http://db2commerce.com/2014/05/06/db2-basics-what-is-a-reorg/)私は私の場合、reorgを呼び出す必要があります。テーブル)をヌル可能にし、データをヌルにできないようにし、古いテーブルに古いカラムをドロップするよりも、データをそれらに移動します。 ADMIN_CMDを使用せずにreorgを呼び出すと、以前は動作していないようですが、再試行しませんでした。 – mstaessen
個々のステートメントを追加し、トランザクションをどこに置くべきですか。 –