У меня есть следующее
@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);
Это выдает следующую ошибку
2019-09-30 21: 58: 23.067 DEBUG 13728 --- [restartedMain] cssmStatMapper. updateFirstPartition: ==> Подготовка: изменить статистику таблицы, реорганизовать раздел?,? в (раздел? значения меньше, чем (?));
2019-09-30 21: 58: 23.093 DEBUG 13728 --- [restartedMain] cssmStatMapper.updateFirstPartition: ==> Параметры: p20180901 (строка), p20181001 (строка), p20181001 (строка), 2018-10-01(Дата)
Причина: org.springframework.jdbc.BadSqlGrammarException: ### Ошибка обновления базы данных. Причина: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: у вас есть ошибка в вашем синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с '' p20180901 ',' p20181001 'в значениях (p20181001' разбиения меньше ('2018-10-' в строке 1
Как я могу выполнить этот оператор alter table
, используя MyBatis?
Этот оператор должен выглядеть следующим образом (p0
и p1
заменены p20180901
и p20181001
):
alter table stats reorganize partition p0,p1 into (
partition p1 values less than ('2018-10-01')
);