diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java index 1a914c7485..ecb0bc2899 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java @@ -2296,6 +2296,9 @@ public class MySqlStatementParser extends SQLStatementParser { } } else if (identifierEquals("RENAME")) { lexer.nextToken(); + if (lexer.token() == Token.TO || lexer.token() == Token.AS) { + lexer.nextToken(); + } MySqlRenameTableStatement renameStmt = new MySqlRenameTableStatement(); MySqlRenameTableStatement.Item item = new MySqlRenameTableStatement.Item(); item.setName(stmt.getTableSource().getExpr()); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlAlterTableTest1.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlAlterTableTest1.java index 7b1bc6160a..0ec24aea8b 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlAlterTableTest1.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/MySqlAlterTableTest1.java @@ -52,5 +52,23 @@ public class MySqlAlterTableTest1 extends TestCase { String output = SQLUtils.toMySqlString(stmt); Assert.assertEquals("ALTER TABLE t2\n\tADD INDEX (d),\n\tADD UNIQUE INDEX (a)", output); } + + public void test_alter_3() throws Exception { + String sql = "ALTER TABLE t1 RENAME TO t2;"; + MySqlStatementParser parser = new MySqlStatementParser(sql); + SQLStatement stmt = parser.parseStatementList().get(0); + parser.match(Token.EOF); + String output = SQLUtils.toMySqlString(stmt); + Assert.assertEquals("RENAME TABLE t1 TO t2", output); + } + + public void test_alter_4() throws Exception { + String sql = "ALTER TABLE t1 RENAME AS t2;"; + MySqlStatementParser parser = new MySqlStatementParser(sql); + SQLStatement stmt = parser.parseStatementList().get(0); + parser.match(Token.EOF); + String output = SQLUtils.toMySqlString(stmt); + Assert.assertEquals("RENAME TABLE t1 TO t2", output); + } }