tinyint(1)遇到的坑


 

一. Mysql查詢的boolean結果將輸出為0或者1.

  比如:

select 1=1;

  其輸出結果為1。

二. 使用一套中間件對kafka消息進行解析為mysql 語句,其中遇到如下的問題,

  1. 目標表有一字段設置類型為:tinyint(1)。
  2. 源表同步消息中接收到相同類型的數據。
  3. 其中中間件中有如下解析部分:
  4. 也就是說,字段tinyint(1)被當做boolean類型進行了返回。導致java中Integer類型無法進行強轉。
  5.  解決方法:alter talbe change `xxx` `xxx` tinyint(4) ...;即可。修改tinyint數據類型長度,mysql也就不再當做boolean類型進行返回了。

     總結:Mysql表結構設計時,要避免設計為tinyint(1)這種類型,以免與boolean類型數據結構進行混淆。引起不必要bug。當然也可以總java代碼中進行修改,修改后的影響,還需另外評估。

 

 

原文鏈接:http://www.cnblogs.com/sunlightlee/p/10533466.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM