开发者社区> 问答> 正文

druid 解析SQL语句出错,应该是关键字truncate的问题 TRUNCA?400报错

druid 解析SQL语句出错,应该是关键字truncate的问题 TRUNCATE(X,D)? 400 报错

@wenshao 你好,想跟你请教个问题:

我想问下,在druid中,truncate是不是也被认为是关键字了?
我在mysql中使用这个函数报错SQL语句比较长,就不贴出了。


 2015-11-18 17:14:26.182 | ERROR | com.alibaba.druid.filter.stat.StatFilter.merg
eSql(StatFilter.java:147) | merge sql error, dbType mysql, sql :
.........................
LEFT JOIN (SELECT orderNo,truncate(SUM(backCash),2) backcash FROM t_biz_backorder GROUP BY orderNo) bo ON tbo.orderNo = bo.orderNo
....................................

 com.alibaba.druid.sql.parser.ParserException: ERROR. token : TRUNCATE, pos : 68
9
        at com.alibaba.druid.sql.parser.SQLExprParser.primary(SQLExprParser.java
:567)
        at com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser.primary(My


展开
收起
爱吃鱼的程序员 2020-05-30 23:30:44 1612 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    可以测试下服务器支持truncate函数不?

    TRUNCATE(X,D)

    这个函数的返回 X截断到D的小数位数的 。如果D是0,则在小数点被除去。如果D为负,那么D的值的整数部分的值将被截断。

    字段名时数字?

    自己在服务器上运行打印出来的sql语句

    ######回复 @月之舞步 : 要是服务器测试没问题,那就用原生的执行,还不行就想想其他办法######这条SQL语句我直接执行是可以的。######

    你可以先删除数据delete 之后再删除整张临时表就好了 有的服务器不支持这样的写法的 关键字识别不出来

    1.DELETE
     ・DML语言
     ・可以回退
     ・可以有条件的删除
    
         DELETE FROM 表名
       WHERE 条件
    
    2.TRUNCATE TABLE
     ・DDL语言
     ・无法回退
     ・默认所有的表内容都删除
     ・删除速度比delete快。
    
       TRUNCATE TABLE 表名

    ######我也是这个问题
    2020-05-30 23:30:46
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
神龙云服务器产品及技术深度解析 立即下载
弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
又快又稳:阿里云下一代虚拟交换机解析 立即下载

相关镜像