程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL靜態修正varchar長度的辦法

MySQL靜態修正varchar長度的辦法

編輯:MySQL綜合教程

MySQL靜態修正varchar長度的辦法。本站提示廣大學習愛好者:(MySQL靜態修正varchar長度的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL靜態修正varchar長度的辦法正文


固然這類情形不該該產生,平日像我們關系型數據庫,我們應當是事前設計好,今後不克不及修改,然則因為之前任務的忽視,其實說真話,也不只僅是我小我的忽視,重要是溝通上的緣由,固然數據庫究竟是我設計的,所以,照樣自我批駁一下。

說一下情形:MySQL字段有個varchar值字段設置的太短了,設置了30個,(我模糊記得varchar是可擴大的,固然實際其實不容忍我的模糊),所以我只能找一個辦法在包管數據庫數據不變的情形下,靜態修正varchar字段的長度,找了一段時光,終究讓我找到了。

alter table 表名 modify column 字段名 varchar(數目);

這個功效照樣比擬壯大的,然則照樣提示年夜家最好設計的時刻就不要湧現這類成績啊。

PS:mysql中的設置varchar長度成績

假如某一項中設置的是varchar(50)

那末對英文固然是50

那末對中文呢

utf-8的中文占3個字節

那末,這個varchar(50)是否是只能存16個漢字了?

mysql varchar(50) 不論中文 照樣英文 都是存50個的

MySQL5的文檔,個中對varchar字段類型如許描寫:varchar(m) 變長字符串。M 表現最年夜列長度。M的規模是0到65,535。(VARCHAR的最年夜現實長度由最長的行的年夜小和應用的字符集肯定,最年夜有用長度是65,532字節)。

為什麼會這般變換?真是感到MySQL的手冊做的太不友愛了,由於你要細心的持續往下讀才會發明這段描寫:MySQL 5.1服從尺度SQL標准,而且不刪除VARCHAR值的尾部空格。VARCHAR保留時用一個字節或兩個字節長的前綴+數據。假如VARCHAR列聲明的長度年夜於255,長度前綴是兩個字節。

好了,貌似懂了一點。但詳細他說的長度年夜於255時應用2個字節長度前綴,小學減法題:65535 - 2 = 65533啊。不曉得這些年夜牛若何盤算的,暫且保存疑問吧?

注:我測試了一下應用UTF8編碼,varchar的最年夜長度為21854字節。

在mysql 5.0.45版本,數據庫編碼utf8下停止測試:varchar最長界說為21785。也就是說豈論字母、數字、漢字,只能放21785個。

推想:varchar字節最年夜65535,utf8編碼一個字符3個字節65535/3=21785。

以上所述是小編給年夜家引見的MySQL靜態修正varchar長度的辦法,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved