使用MySql中的字符串插入表中

时间:2014-01-06 07:19:16

标签: mysql

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中成功执行的: 但是,当我把它放在一个字符串中并使用Prepared Statement时,它会给出以下错误:

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

3 个答案:

答案 0 :(得分:1)

  

预处理语句的SQL语法不支持多语句(即,单个字符串中的多个语句由“;”字符分隔)。

见这里:http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html

答案 1 :(得分:0)

在第一种情况下,你不使用一个突击队而是使用一些突击队,当你把它作为预备语句放在一个字符串中时,你必须为你想要执行的每一个突击队员创建一个预备语句。

答案 2 :(得分:0)

由于您没有附加Java代码,我认为您是 试图为所有文本准备声明,而不是准备每一个并执行它。

一些提示:

  1. 无需准备CREATE TABLE语句,只需使用create语句并执行它(因为不使用绑定变量)http://docs.oracle.com/javase/tutorial/jdbc/basics/tables.html
  2. 如果您的应用程序允许,请考虑使用truncate而不是delete,它会更快并减少日志生成。
  3. 别忘了承诺:)。
  4. BR