为什么我不能在MySQL中的预准备语句中设置变量?

时间:2017-06-29 16:34:48

标签: java mysql jdbc prepared-statement

我正在运行一个脚本来在MySQL数据库中插入一些数据,并且它在MySQL工作台中正常运行。但是,当我尝试通过JDBC从Java运行它时,我收到一个错误。脚本是:

INSERT INTO `pa_record` (`username`, `pa_record_type`, `record_time`) VALUES (?, ?, CURRENT_TIMESTAMP);
SET @record_id := 1;
INSERT INTO `pa_crud` (`pa_record_id`, `table_name`) VALUES (@record_id, ?);

我从JDBC获得的错误是

  

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'SET @record_id:= 1附近使用正确的语法;   在第2行插入pa_crudpa_record_idtable_name)VALUES'

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

许多(大多数?)数据库访问库在单个执行中不允许多个语句;那些做的,通常需要通过设置更改激活功能。 它可能没有抱怨SET,但你在第一个查询结束后有任何东西。