Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

format mysql建表语句遇到索引有注释报错 #2080

Closed
honganan opened this issue Oct 31, 2017 · 2 comments
Closed

format mysql建表语句遇到索引有注释报错 #2080

honganan opened this issue Oct 31, 2017 · 2 comments
Labels
Milestone

Comments

@honganan
Copy link

CREATE TABLE `g_platform_payway` (
	`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id', 
	`platform_code` varchar(45) NOT NULL, 
	`pay_way` varchar(32) NOT NULL, 
	PRIMARY KEY (`id`), 
	UNIQUE `uniq_playform_payway` USING BTREE (`platform_code`, `pay_way`) COMMENT '平台code和支付方式应该唯一'
) ENGINE = InnoDB CHARSET = utf8 COMMENT = '配置表'

如上sql中唯一索引后带有comment...时会格式化出错,格式化代码如下所示:

MySqlStatementParser parser = new MySqlStatementParser(sql3);
SQLStatement statement = parser.parseStatement();

报错信息如下所示:

Exception in thread "main" com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'TREE COMMENT '平台code和支付方式应该唯一'
) EN',expect RPAREN, actual COMMENT COMMENT
	at com.alibaba.druid.sql.parser.SQLParser.printError(SQLParser.java:239)
	at com.alibaba.druid.sql.parser.SQLParser.accept(SQLParser.java:247)
	at com.alibaba.druid.sql.dialect.mysql.parser.MySqlCreateTableParser.parseCrateTable(MySqlCreateTableParser.java:182)
	at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseCreate(MySqlStatementParser.java:341)
	at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:193)
	at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatement(SQLStatementParser.java:2036)
@wenshao wenshao added the Bug label Oct 31, 2017
wenshao added a commit that referenced this issue Oct 31, 2017
@wenshao wenshao added this to the 1.1.6 milestone Oct 31, 2017
@wenshao
Copy link
Member

wenshao commented Oct 31, 2017

问题重现并修复,等下一个版本发布吧,如果着急可以自行编译一个版本。

mvn clean install -Dmaven.test.skip

方便说一下具体应用场景么?

@wenshao wenshao closed this as completed Dec 1, 2017
@honganan
Copy link
Author

@wenshao 我在做一个SQL审核平台和数据查询平台,其中多处用到druid格式化工具类,这个场景在jsqlparser中也不支持

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants