2012-01-29 21 views
0

當我試圖刪除表中的最後一行使用PreparedStatement(我正在使用MySQL數據庫),該行未被刪除,我試圖使用DELETE FROM ...命令和TRUNCATE命令(使用executeUpdate()命令),但這些命令都沒有刪除最後一行,我應該怎麼做才能刪除最後一行?刪除使用Java PreparedStatement行並不總是工作

這是我寫的命令:

String sqlDelete = "DELETE FROM free_time WHERE therapist_id=? AND from=? AND to=? AND date=?"; 

而且我檢查了,我傳送給到預處理語句的參數是正確的,不過,該行不會被刪除。

謝謝先進。

+1

某些代碼和(如果存在)錯誤? – 2012-01-29 20:57:05

+0

最後一行是什麼?最後插入或修改?最大的自動增量ID? – 2012-01-29 20:57:19

+1

代碼示例將有助於診斷。潛在的問題是你在一個事務中工作,而沒有提交你的改變。 – 2012-01-29 20:57:26

回答

0

最後一行並不意味着關係數據庫中的任何內容。您不需要知道行如何存儲。

您應該使用WHERE子句來標識您需要刪除的內容。

我不會推薦TRUNCATE。

+0

這是我寫的命令: String sqlDelete =「DELETE FROM free_time WHERE therapist_id =?AND'from' =?AND'to' =?AND date =?」;我已經檢查過,我發送給Prepared Statement的參數是否正確,但仍然沒有被刪除。 – user1176926 2012-01-29 21:06:17

0

您正在使用關鍵詞,並明顯抑制異常;)。

String sqlDelete = "DELETE FROM free_time WHERE therapist_id=? AND `from`=? AND `to`=? AND `date`=?"; 
+0

這是什麼意思?我試圖重寫這樣的命令: DELETE FROM'ThetaOnline'.'free_time' WHERE'free_time'.'therapist_id' =? AND'free_time'.'from' ='? AND'free_time'.'to' =? AND'free_time'.'date' =?;但仍然沒有區別 – user1176926 2012-01-30 08:11:31

+0

來源和值可能是DATETIME,很容易出錯百分之一秒。您可以通過具有相同參數值和/或某些日誌記錄的SELECT對其進行測試。 – 2012-01-30 08:55:15