2011-09-21 34 views
0

我正在使用VB.NET和MySQL,想知道是否有辦法知道INSERT IGNORE sql是否向DB添加了新記錄。MySQL INSERT IGNORE結果(是否添加記錄)?

給定一個表(TBLA)與一種柱(COL1)和1個結果( '富')

------- 
| col1 | 
------- 
| foo | 
------- 

在SQL "INSERT IGNORE INTO tblA VALUES ('foo');"將沉默失敗,即沒有記錄加入

但SQL "INSERT IGNORE INTO tblA VALUES ('bar');"將成功插入新紀錄。

所以我需要知道結果...

意見建議?

Thx Paulo Bueno。

回答

-2

可以在INSERT操作之後和前查詢行的表中的數量,並檢查結果不同。如果他們這樣做,操作確實插入了一行。

+3

假設沒有其他人插入和選擇計數之間插入任何東西? – Adnan

+0

@Adnam:如果這是在具有REPEATABLE READ隔離模式(這是MySQL的默認設置)的事務中完成的,那麼**之前和之後的計數將是可靠的,因爲事務不會看到其他插入或刪除。但它確實不是一種有效的方法。 –

3

我不是一個VB.NET的人,但你想要相當於mysql_affected_rows。如果記錄被插入,這將是1,否則爲零。其他查詢不是必需的。