开发者社区> 问答> 正文

MYCAT 全局sequence 查询语句报错

SQL语句: INSERT INTO C_CART (cartId, customerId, productSubId, distProdSubId, storeId, num, msg, isDel, delTime, createtime) VALUES (next value for MYCATSEQ_CART, ?, ?, ?, ?, ?, ?, ?, ?, ?)

报错地方: next value for MYCATSEQ_CART

报错信息(部分): nested exception is java.sql.SQLException: sql injection violation, syntax error: syntax error : INSERT INTO C_CART (cartId, customerId, productSubId, distProdSubId, storeId, num, msg, isDel, delTime, createtime) VALUES (next value for MYCATSEQ_CART, ?, ?, ?, ?, ?, ?, ?, ?, ?)] with root cause com.alibaba.druid.sql.parser.ParserException: syntax error at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseValueClause(MySqlStatementParser.java:2132) ~[druid-1.0.26.jar:1.0.26] at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseInsert(MySqlStatementParser.java:2022) ~[druid-1.0.26.jar:1.0.26] at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseInsert(MySqlStatementParser.java:193) ~[druid-1.0.26.jar:1.0.26] at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:199) ~[druid-1.0.26.jar:1.0.26] at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:148) ~[druid-1.0.26.jar:1.0.26] at com.alibaba.druid.wall.WallProvider.checkInternal(WallProvider.java:620) ~[druid-1.0.26.jar:1.0.26] at com.alibaba.druid.wall.WallProvider.check(WallProvider.java:574) ~[druid-1.0.26.jar:1.0.26] at com.alibaba.druid.wall.WallFilter.check(WallFilter.java:711) ~[druid-1.0.26.jar:1.0.26]

在 控制台 运行, 报错信息(部分): caught err: com.alibaba.druid.sql.parser.ParserException: syntax error, error in :' FOR MYCATSEQ_CART',expect UPDATE, actual IDENTIFIER MYCATSEQ_CART 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.MySqlSelectParser.query(MySqlSelectParser.java:179) at com.alibaba.druid.sql.parser.SQLSelectParser.select(SQLSelectParser.java:62) at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseSelect(MySqlStatementParser.java:237) at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:183) at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatement(SQLStatementParser.java:2065) at io.mycat.server.util.SchemaUtil.parseSchema(SchemaUtil.java:25) at io.mycat.server.ServerConnection.execute(ServerConnection.java:214) at io.mycat.server.handler.SelectHandler.handle(SelectHandler.java:105) at io.mycat.server.ServerQueryHandler.query(ServerQueryHandler.java:79) at io.mycat.net.FrontendConnection.query(FrontendConnection.java:317) at io.mycat.net.FrontendConnection.query(FrontendConnection.java:337) at io.mycat.net.handler.FrontendCommandHandler.handle(FrontendCommandHandler.java:71)

if (lexer.token() == Token.FOR) { lexer.nextToken(); accept(Token.UPDATE);

    queryBlock.setForUpdate(true);
    
    if (identifierEquals("NO_WAIT")) {
        lexer.nextToken();
        queryBlock.setNoWait(true);
    } else if (identifierEquals("WAIT")) {
        lexer.nextToken();
        SQLExpr waitTime = this.exprParser.primary();
        queryBlock.setWaitTime(waitTime);
    }
}

原提问者GitHub用户jiangchengshi c

展开
收起
山海行 2023-07-05 21:23:31 65 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    如果您在使用MYCAT的全局序列(Global Sequence)功能时遇到查询语句报错,可能是因为查询语句不正确或者MYCAT配置不正确。以下是一些可能的解决方法:

    检查查询语句是否正确
    请检查您的查询语句是否正确,特别注意以下几个可能引起语法错误的因素:

    SQL语法错误:请确保查询语句符合SQL语法规范,特别是关键字、表名、列名等是否正确。
    查询条件错误:请确保查询条件是否正确,特别是查询条件中是否包含不支持的操作符或者数据类型。
    权限问题:请确保当前用户对于需要查询的表或者列拥有足够的权限。
    请确认查询语句是否正确,如果有错误请及时修改。

    检查MYCAT配置是否正确
    请检查您的MYCAT配置是否正确,特别注意以下几个可能引起查询语句报错的因素:

    全局序列配置:请确保MYCAT已正确配置全局序列功能,并且序列名称和表名等信息正确。
    数据库连接配置:请确保MYCAT已正确配置数据库连接信息,并且数据库连接正常。
    规则配置:请确保MYCAT已正确配置数据分片规则,并且数据分片规则能够正确路由到目标数据库。

    2023-07-30 09:41:45
    赞同 展开评论 打赏
  • 插入语句格式都拼错了

    原回答者GitHub用户DuLerWeil

    2023-07-06 11:59:00
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载