最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySql超長自動截斷實例詳解

 更新時間:2017年07月24日 10:29:37   投稿:lqh  
這篇文章主要介紹了MySql超長自動截斷實例詳解的相關資料,這里通過實例來說明如何實現(xiàn)自動截斷的功能,需要的朋友可以參考下

MySql超長自動截斷實例詳解

小伙伴問到一個問題,為啥在項目中調用插入或者更新語句時超長的字無法自動截斷,而在navicat中直接執(zhí)行是可以自動截斷的?

如下

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

查詢結果如下

 

確實自動截斷了,但是在項目中執(zhí)行同樣的sql發(fā)現(xiàn)并非如此,反而報錯。

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

考慮到是同一個數(shù)據(jù)庫,不存在模式不同,那么可能性應該出現(xiàn)在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 || currentSqlMode.length() == 0 || !strictTransTablesIsSet) {
        StringBuilder commandBuf = new StringBuilder("SET sql_mode='");
 
        if (currentSqlMode != null && currentSqlMode.length() > 0) {
          commandBuf.append(currentSqlMode);
          commandBuf.append(",");
        }
 
        commandBuf.append("STRICT_TRANS_TABLES'");
 
        execSQL(null, commandBuf.toString(), -1, null, DEFAULT_RESULT_SET_TYPE, DEFAULT_RESULT_SET_CONCURRENCY, false, this.database, null, false);
 
        setJdbcCompliantTruncation(false); // server's handling this for us now
      } else if (strictTransTablesIsSet) {
        // We didn't set it, but someone did, so we piggy back on it
        setJdbcCompliantTruncation(false); // server's handling this for us now
      }
 
    }
  }
}

查看getJdbcCompliantTruncation方法,其默認值為

private BooleanConnectionProperty jdbcCompliantTruncation = new BooleanConnectionProperty("jdbcCompliantTruncation", true,
    Messages.getString("ConnectionProperties.jdbcCompliantTruncation"), "3.1.2", MISC_CATEGORY, Integer.MIN_VALUE);

因此從3.1.2版本在jdbcurl中如果沒有設置jdbcCompliantTruncation那么默認將會執(zhí)行不截斷并且報錯。

那么加上參數(shù)是否可以呢?

取舍一下:

如果截斷當出現(xiàn)比超長可能會有精度丟失的風險。

因此建議還是在程序中檢查。

目前正在做關于使用hibernate validate的相關。

以上就是關于MySQL 截斷的講解,大家如有疑問可以留言或者到本站社區(qū)交流討論,共同進步, 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • mysql 索引合并的使用

    mysql 索引合并的使用

    索引合并是mysql底層為我們提供的智能算法。本文就介紹了mysql 索引合并的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • mysql踩坑之limit與sum函數(shù)混合使用問題詳解

    mysql踩坑之limit與sum函數(shù)混合使用問題詳解

    這篇文章主要給大家介紹了關于mysql踩坑之limit與sum函數(shù)混合使用問題的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用mysql具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • 刪庫跑路?使用xtraback備份MySQL數(shù)據(jù)庫的方法

    刪庫跑路?使用xtraback備份MySQL數(shù)據(jù)庫的方法

    mysqldump備份方式是采用邏輯備份,最大的缺陷就是備份和恢復的速度都慢,這時候就需要一種很好用又高效的工具,xtraback 就是其中的一款,號稱免費版的innodb hotbackup。接下來通過本文給大介紹使用xtraback備份MySQL數(shù)據(jù)庫的方法,感興趣的朋友一起看看吧
    2018-10-10
  • Mysql中有關Datetime和Timestamp的使用總結

    Mysql中有關Datetime和Timestamp的使用總結

    mysql數(shù)據(jù)庫常用的時間類型有timestamp和datetime,兩者主要區(qū)別是占用存儲空間長度不一致、可存儲的時間也有限制,本文就來詳細的介紹一下,感興趣的可以了解一下
    2021-12-12
  • Oracle開啟和關閉的四種模式

    Oracle開啟和關閉的四種模式

    這篇文章主要介紹了Oracle開啟和關閉的四種模式 ,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • MySQL InnoDB之事務與鎖詳解

    MySQL InnoDB之事務與鎖詳解

    MySQL InnoDB之事務與鎖詳解,需要使用事務的朋友可以參考下
    2012-04-04
  • linux下mysql 5.1 和 5.7的安裝教程

    linux下mysql 5.1 和 5.7的安裝教程

    下面小編就為大家分享一篇linux下mysql 5.1 和 5.7的安裝教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • MySql 索引、鎖、事務知識點小結

    MySql 索引、鎖、事務知識點小結

    這篇文章主要介紹了MySql 索引、鎖、事務知識點,總結分析了mysql數(shù)據(jù)庫中關于索引、鎖和事務的概念、原理、知識點及相關注意事項,需要的朋友可以參考下
    2019-10-10
  • mysql中如何使用正則表達式查詢

    mysql中如何使用正則表達式查詢

    這篇文章主要介紹了mysql中如何使用正則表達式查詢,需要的朋友可以參考下
    2014-06-06
  • MySQL優(yōu)化案例系列-mysql分頁優(yōu)化

    MySQL優(yōu)化案例系列-mysql分頁優(yōu)化

    這篇文章主要介紹了MySQL優(yōu)化案例系列-mysql分頁優(yōu)化,需要的朋友可以參考下
    2016-08-08

最新評論

搜索| 绥棱县| 肇东市| 南澳县| 思茅市| 永胜县| 中山市| 林芝县| 蒲江县| 邵武市| 新宁县| 邯郸县| 武功县| 固始县| 正阳县| 太原市| 广元市| 和顺县| 汕头市| 固原市| 华坪县| 舒兰市| 金阳县| 江西省| 开远市| 宝坻区| 太和县| 大新县| 合阳县| 城市| 新密市| 临潭县| 临泽县| 卫辉市| 景洪市| 循化| 资阳市| 嘉荫县| 合肥市| 泌阳县| 浦县|