本文摘自PHP中文网,作者黄舟,侵删。
这篇文章主要介绍了MySql超长自动截断实例详解的相关资料,这里通过实例来说明如何实现自动截断的功能,需要的朋友可以参考下MySql超长自动截断实例详解
小伙伴问到一个问题,为啥在项目中调用插入或者更新语句时超长的字无法自动截断,而在navicat中直接执行是可以自动截断的?
如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
1 2 |
|
很明显varchar(20) 不足以容纳12121312312312啊啊啊啊啊aassasdasd
查询结果如下
确实自动截断了,但是在项目中执行同样的sql发现并非如此,反而报错。
1 |
|
考虑到是同一个数据库,不存在模式不同,那么可能性应该出现在jdbcDriver上。
查看jdbc源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
查看getJdbcCompliantTruncation方法,其默认值为
1 2 |
|
因此从3.1.2版本在jdbcurl中如果没有设置jdbcCompliantTruncation那么默认将会执行不截断并且报错。
那么加上参数是否可以呢?
取舍一下:
如果截断当出现比超长可能会有精度丢失的风险。
因此建议还是在程序中检查。
目前正在做关于使用hibernate validate的相关。
以上就是MySql中关于超长自动截断的案例详解的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
mysql中delete from where子查询的限制介绍
mysql中如何配置ssl_key和ssl-cert与ssl-ca的路径以及建立ssl连接的实例
更多相关阅读请进入《mysql》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。