2014-01-06 30 views
0
CREATE TABLE IF NOT EXISTS tmp_park_log (
    uniqueid VARCHAR (20), 
    parked_sec INT 
) ; 
DELETE 
FROM 
    tmp_park_log ; 
INSERT INTO tmp_park_log (uniqueid, parked_sec) 
SELECT 
    uniqueid, 
    SUM(parked_sec) 
FROM 
    park_log 
GROUP BY uniqueid ; 

這在MySQL的成功執行: 但是,當我把這個字符串並用準備好的聲明它提供了以下錯誤:插入到表使用字符串中的MySql

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELETE FROM tmp_park_log; INSERT INTO tmp_park_log (uniqueid, parked_sec) SELEC' at line 1 
+0

你應該把每一個命令到單獨的語句。 – vadchen

回答

0

在第一種情況下,你並沒有使用一個突擊隊,而是你使用了一些突擊隊,並且當你把它作爲一個準備好的聲明放入一個字符串時,你必須爲你想執行的每一個突擊隊創建一個準備好的聲明。

0

。因爲沒有附加的Java代碼我假設你是 試圖d的所有文本準備發言,而不是每一個準備和執行它。

一些提示:

  1. 沒有必要準備你可以使用create語句並執行CREATE TABLE語句(因爲沒有綁定變量使用)http://docs.oracle.com/javase/tutorial/jdbc/basics/tables.html
  2. 如果您的應用程序允許的話,考慮使用truncate而不是delete,它會更快並且減少日誌生成。
  3. 不要忘記提交:)。

BR