mysql 查询结果显示自动截断,MySql中对于超长自动截断的案例详细说明

软件安装:装机软件必备包

SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。这篇文章主要介绍了MySql超长自动截断实例详解的相关资料,这里通过实例来说明如何实现自动截断的功能,需要的朋友可以参考下

MySql超长自动截断实例详解

小伙伴问到一个问题,为啥在项目中调用插入或者更新语句时超长的字无法自动截断,而在navicat中直接执行是可以自动截断的?

如下

CREATE TABLE `p_app_station` (

`WX_APP_ID` varchar(20) NOT NULL,

`APP_SECRET` varchar(33) DEFAULT NULL,

`IS_BINDING` int(1) DEFAULT '0',

`ACCOUNT_ID` int(13) DEFAULT NULL,

`TOKEN` varchar(40) DEFAULT NULL,

`BIND_URL` varchar(200) DEFAULT NULL,

`WX_APP_NAME` varchar(50) DEFAULT NULL,

`WX_APP_SID` varchar(50) DEFAULT NULL,

`WX_NO` varchar(50) DEFAULT NULL,

`CREATE_USER_ID` varchar(13) DEFAULT NULL,

`UPDATE_DATE` datetime DEFAULT NULL,

`CREATE_DATE` datetime DEFAULT NULL,

`UPDATE_USER_ID` varchar(13) DEFAULT NULL,

`STATION_TYPE` int(1) unsigned zerofill DEFAULT NULL COMMENT '标记类型(试用版:0,会员版:1,定制版:2)',

`ACTIVE_DATE` datetime DEFAULT NULL COMMENT '使用时间截止',

`APP_MODULE_ID` varchar(60) DEFAULT NULL COMMENT '推送模版消息ID',

PRIMARY KEY (`WX_APP_ID`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

insert into p_app_station(wx_app_id) values('12121312312312啊啊啊啊啊aassasdasd');

select * from p_app_station where wx_app_id like '12121312312312%';

很明显varchar(20) 不足以容纳12121312312312啊啊啊啊啊aassasdasd

查询结果如下

f6a64823e4d878005ba3195702197604.png

确实自动截断了,但是在项目中执行同样的sql发现并非如此,反而报错。

Data truncated for column '%s' at row %ld

考虑到是同一个数据库,不存在模式不同,那么可能性应该出现在jdbcDriver上。

查看jdbc源码

private void setupServerForTruncationChecks() throws SQLException {

if (getJdbcCompliantTruncation()) {

if (versionMeetsMinimum(5, 0, 2)) {

String currentSqlMode = this.serverVariables.get("sql_mode");

boolean strictTransTablesIsSet = StringUtils.indexOfIgnoreCase(currentSqlMode, "STRICT_TRANS_TABLES") != -1;

if (currentSqlMode == null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值