2011-09-28 86 views
10

有沒有辦法在不修改我的數據庫的情況下測試mysql查詢?模擬mysql查詢

例如,我可以在沒有實際刪除任何東西的情況下運行delete from my_table where id=101嗎?怎麼樣插入和更新?

TY

+0

爲什麼你需要測試它們? –

+2

@Pekka웃手動檢查一個更新是否在執行之前執行您認爲應該執行的操作。 – Will

回答

17

您可以在運行查詢之前啓動事務,然後在運行查詢後進行回滾。請注意,要執行此操作,您需要InnoDB或XtraDb表(不適用於MyISAM)。

啓動事務發送到MySQL下面的語句:

START TRANSACTION; 

而在你的查詢結束運行下面的語句:

ROLLBACK; 

您的數據庫將永遠不會被從點修改其他連接的視圖。您的當前連接將會看到更改,直到ROLLBACK,之後原始狀態將被恢復。

+4

好的,現在如果我決定喜歡結果,我該如何保存它們? 'END TRANSACTION;'? Geez,現在我必須一路走向谷歌... *徘徊回來*答案是['COMMIT'](http://dev.mysql.com/doc/refman/5.6/en/commit.html) 。 – Zenexer

1

數據庫複製到測試數據庫或自動生成一個導入腳本。你可以在測試數據庫上測試任何你想要的東西,並使用腳本或導入來重新恢復它。

5

如果您只想查看將刪除多少行,爲什麼不用'select count(*)'替代'delete'?