druid 解析SQL语句出错,应该是关键字truncate的问题 TRUNCA?400报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

爱吃鱼的程序员 2020-05-30 23:21:39 22

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


SQL druid 关系型数据库 MySQL
分享到
取消 提交回答
全部回答(1)
  • 爱吃鱼的程序员
    2020-05-30 23:21:40

    可以测试下服务器支持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 表名

    ######我也是这个问题
    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程