我可以在JDBC预处理语句中替换除参数之外的其他内容吗?

时间:2015-02-16 19:05:57

标签: mysql jdbc prepared-statement

我试图以编程方式创建表并收到此错误:

Failure to execute query with SQL:
create table if not exists ? like other_table_name  ::  [new_table_name]
BatchUpdateException:
 Message: 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 ''new_table_name' like other_table_name' at line 1
 SQLState: 42000
 Error Code: 1064

我也希望能够做到这样的事情:

select * from ? where thing = ?;

我会发布代码,因为它是Clojure,我认为这是一个JDBC(而不是库)问题。

我是否应该期待这样的预备声明有效?

1 个答案:

答案 0 :(得分:0)

不,你不能。准备好的语句是数据库可以准备的语句,即决定它将如何执行,它影响哪个表,它使用哪个索引等。要知道,它需要知道语句中使用的表。