簡體   English   中英

插入批量語句后刪除數據

[英]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語句甚至不是有效的語法,所以我認為它不會做你想要的。 即使您修復了語法,您也沒有將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放入事務並回滾一次以驗證計數,然后如果匹配,則運行它並提交。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM