0

私はテーブルにN個のレコードを持っています.1つのテーブルからすべてのレコードを移動したいのですが、古いテーブルtable1 と新しいテーブルを別のテーブルに移動したいと思いtable2ます。10000 レコードと仮定すると、6000 レコードに挿入中に例外が発生し、終了しましたが、まだtable2空です。ここで、データベースに挿入された 5999 レコードであることを知りたいですか?

前もって感謝します 、、

答える価値がない場合、または何らかの理由で反対票を投じる理由を教えてください。私はそれを改善できます

4

1 に答える 1

1

挿入するテーブルからレコードを選択するためのサブクエリを含むクエリがあります

INESRT INTO table2(<COLUMN LIST>) SELECT <COLUMN LIST> FROM table1 WHERE ...レコードを移動するために実行しているものがあると思います。

その場合、INSERT ステートメントはトランザクションの一部として実行され、ステートメントが正常に実行された場合、つまり、そのクエリINSERTによって返されたすべてのレコードを処理できる場合にのみコミットされます。SELECTそれ以外の場合、トランザクションはロールバックされ、レコードは挿入されません。

ここで、データベースに挿入された5999レコードであることを知りたいですか?

INSERTこれらのレコードは、ステートメントの実行中に tmp の場所にある作業テーブルに挿入されます。すべてがうまくいっていれば、メインテーブルにコミットされていたでしょう。

于 2013-04-20T05:19:45.833 に答える