2016-03-18 27 views
-1

後、私は、このような方法で、間違いの挿入に削除データは、挿入バルク文の

insert into tab1 (col1 , col2 , col3) select col1 , col2,col3 from tab2 

をした私は、これらの7600行を削除する7600行の効果

を得た私は、以下の作った場合、それが安全だろう削除?

​​

私はtab1でデータを失うかどうかを知りたいと思っています。このクエリは7600行以上削除しますか?共通のデータがあった場合、私はisertの権利に一意の制約があるでしょうか? (両方とも同じPKを持っている)

答えて

0

あなたのDELETEステートメントは有効な構文でもないので、あなたが望むことをするとは思わない。構文を固定しても、tab1tab2には何も関係ありません。

さらに、あなたはテーブル構造を提供していないので、ここからのものはほとんど私の一部の推測です。お読みください:https://stackoverflow.com/help/how-to-ask

てみランニング:

SELECT COUNT(*) 
FROM 
    tab1 
INNER JOIN tab2 ON tab2.col1 = tab1.col1 -- Is this the primary key? If not then you'll need to join on the whole primary key 

を、あなたがINSERTをしたときにあなたができることだと同じ番号を取得した場合:

DELETE T1 
FROM 
    Tab1 T1 
INNER JOIN Tab2 T2 ON T2.col1 = T1.col1 

を私はにDELETEを置きますトランザクションを実行し、カウントを確認するために一度ロールバックし、一致する場合は実行してコミットします。

+0

よく私の質問は、挿入に関連していない削除に関連していない条件がちょうど私は挿入の反対を行う..削除は同じだろう..テーブルのddlは、私は質問する方法を知っています。しかし、インナージョイントとバルクインサートの違いは何ですか? – Moudiz

関連する問題