2014-01-06 26 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