[英]delete data after insert bulk statement
我以這種方式插入錯誤
insert into tab1 ( col1 , col2 , col3) select col1 , col2,col3 from tab2
我有 7600 行效果
我想刪除那 7600 行,如果我在下面刪除會安全嗎?
delete from tab1 where exists select col1 , col2,col3 from tab2
我問這個是為了知道我是否會丟失 tab1 中的數據。 這個查詢會刪除超過 7600 行嗎?。 如果有通用數據,我會在 isert 中得到唯一約束,對嗎? (是的,兩者都有相同的PK)
你的DELETE
語句甚至不是有效的語法,所以我認為它不會做你想要的。 即使您修復了語法,您也沒有將tab1
與tab2
。
此外,你還沒有提供你的表結構,所以從這里開始的任何事情都是我的猜測。 請閱讀: 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
放入事務並回滾一次以驗證計數,然后如果匹配,則運行它並提交。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.