当前位置: 首页 > 知识库问答 >
问题:

如何使用mybatis创建alter table语句?mysqlsyntaxerrorexception:您的SQL语法中有错误

赵越
2023-03-14
@Mapper
public interface StatMapper {
    @Update("alter table stats reorganize partition #{pFirst},#{pSecond} into ( "
            + "partition #{pSecond} values less than (#{dSecond}) "
            + ");")
    public void updateFirstPartition(@Param("pFirst")String pFirst, @Param("pSecond")String pSecond, @Param("dSecond")LocalDate dSecond);

如何使用MyBatis发出此ALTER TABLE语句?

语句应如下所示(P0P1P20180901P20181001替换):

alter table stats reorganize partition p0,p1 into (
    partition p1 values less than ('2018-10-01')
);

共有1个答案

戈宏义
2023-03-14

${}是文本替换,#{}java.sql.PreparedStatement中的占位符(有关详细信息,请参阅常见问题解答)。因此,使用您的代码,MyBatis生成一个准备好的语句,如下所示...

PreparedStatement ps = connection.prepareStatement(
  "alter table stats reorganize partition ?,? into (partition ? values less than (?))");

...它失败,因为您不能为分区名使用占位符。

以下方法应该起作用。

java prettyprint-override">@Update("alter table stats reorganize partition ${pFirst},${pSecond} into ( "
  + "partition ${pSecond} values less than (#{dSecond}) "
  + ")")
 类似资料:
  • 我从Spring Boot进行了升级 它创建序列,但不创建任何表。查看跟踪,它显示了创建表中的语法错误 SQL:SQL 语句中的语法错误(一个示例): 事实上,检查qith H2控制台或SQl linter它将“IDENTITY[*]”标记为错误,否则它将在H2中工作。 第二次尝试也是失败的。我把 并将Spring文档 https://docs.spring.io/spring-batch/doc

  • 问题内容: 我使用准备好的语句编写了select语句。每次尝试运行它都会出现此错误。我如何克服这个错误?我的jdbc连接器是mysql-connector- java-5.1.13-bin.jar。我的代码: 错误代码.. 2013年10月1日,下午1:23:23 sanin.lands.model.View_ads_cls getAdDetail 问题答案: 错误在这一行 这样做

  • 我正在尝试创建h2 DB模式。这是我的sql 我得到一个错误 原因:org。h2。jdbc。JdbcSQLSyntaxErrorException:SQL语句“创建扩展[*]如果不存在UUID_OSSP”中的语法错误;预期“或、强制、视图、别名、序列、用户、触发器、角色、模式、常量、域、类型、数据类型、聚合、链接、内存、缓存、本地、全局、临时、表、同义词、主、唯一、哈希、空间、索引”;SQL语句:

  • 我需要帮助。我正在开发上传文本文件的应用程序。就在这一刻,我遇到了错误,我不能清楚地理解。下面是我的代码: 使用TextFilesDB; 创建表(int(11)NOT NULL AUTO_INCREMENT, varchar(45)NOT NULL,varchar(45)默认NULL,varchar(45)默认NULL,mediumblob,主键()))

  • 问题内容: 我使用准备好的语句编写了select语句。每次尝试运行时都会出现此错误。我如何克服这个错误?我的jdbc连接器是mysql-connector- java-5.1.13-bin.jar。我的代码: 错误代码.. 2013年10月1日,下午1:23:23 sanin.lands.model.View_ads_cls getAdDetail 问题答案: 错误在这一行 这样做

  • 我正在运行以下SQL语法: 但不管用。我得到了这个错误: 错误1064(42000):您的SQL语法中有错误;查看与您的MySQL server版本相对应的手册,了解第1行“DISTINCT >”Number of Employees“FROM Hours”附近使用的正确语法 你能告诉我我在哪里做错了吗?对不起,我对MySQL和数据库不熟悉。