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

标签 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 得到的错误是

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 'SET @record_id := 1; INSERT INTO pa_crud (pa_record_id, table_name) VALUES' at line 2

有什么想法吗?

最佳答案

许多(大多数?)数据库访问库不允许在一次执行中执行多个语句;那些这样做的人通常需要通过更改设置来激活该功能。 它可能不是在提示 SET,而是在第一个查询结束后你根本没有得到任何东西。

关于java - 为什么我不能在 MySQL 的准备语句中设置变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44830659/

相关文章:

java - 更新 Joda DateTime 对象

php - ∞ 在插入到 MySQL 表中时被转换为 ∼

java - 如何在 NQueens 中打印结果

java - 使用 Java 处理 URL 中的特殊字符

java - SessionFactory opensession 抛出空指针异常

mysql - 选择 MySQL 中具有公共(public)起始短语的所有字段

ruby - 如何让 postgresql 与 sequel 和 jruby 一起工作

java - 在 Java 中使用结果集

java - 通过 Hibernate JPA 连接到 MySQL

java - 如何计算数组列表中特定类的实例数?