《Mysql實例MySQL動態修改varchar長度的方法》要點:
本文介紹了Mysql實例MySQL動態修改varchar長度的方法,希望對您有用。如果有疑問,可以聯系我們。
雖然這種情況不應該發生,通常像我們關系型數據庫,我們應該是事先設計好,以后不能改動,但是由于之前工作的疏忽,其實說實話,也不僅僅是我個人的疏忽,主要是溝通上的原因,當然數據庫畢竟是我設計的,所以,還是自我批評一下.MYSQL學習
說一下情況:MySQL字段有個varchar值字段設置的太短了,設置了30個,(我依稀記得varchar是可擴展的,當然現實并不容忍我的依稀),所以我只能找一個辦法在保證數據庫數據不變的情況下,動態修改varchar字段的長度,找了一段時間,終于讓我找到了.MYSQL學習
alter table 表名 modify column 字段名 varchar(數量);
這個功能還是比較強大的,但是還是提醒大家最好設計的時候就不要出現這種問題啊.MYSQL學習
PS:mysql中的設置varchar長度問題MYSQL學習
如果某一項中設置的是varchar(50)
MYSQL學習
那么對英文當然是50
MYSQL學習
那么對中文呢
MYSQL學習
utf-8的中文占3個字節
MYSQL學習
那么,這個varchar(50)是不是只能存16個漢字了?
MYSQL學習
mysql varchar(50) 不管中文 還是英文 都是存50個的MYSQL學習
MySQL5的文檔,其中對varchar字段類型這樣描述:varchar(m) 變長字符串.M 表示最大列長度.M的范圍是0到65,535.(VARCHAR的最大實際長度由最長的行的大小和使用的字符集確定,最大有效長度是65,532字節).
MYSQL學習
為何會這般變換?真是感覺MySQL的手冊做的太不友好了,因為你要仔細的繼續往下讀才會發現這段描述:MySQL 5.1遵從標準SQL規范,并且不刪除VARCHAR值的尾部空格.VARCHAR保存時用一個字節或兩個字節長的前綴+數據.如果VARCHAR列聲明的長度大于255,長度前綴是兩個字節.
MYSQL學習
好了,貌似懂了一點.但具體他說的長度大于255時使用2個字節長度前綴,小學減法題:65535 - 2 = 65533啊.不知道這些大牛如何計算的,暫且保留疑問吧?
MYSQL學習
注:我測試了一下使用UTF8編碼,varchar的最大長度為21854字節.MYSQL學習
在mysql 5.0.45版本,數據庫編碼utf8下進行測試:varchar最長定義為21785.也就是說不論字母、數字、漢字,只能放21785個.
MYSQL學習
推想:varchar字節最大65535,utf8編碼一個字符3個字節65535/3=21785.MYSQL學習
以上所述是小編給大家介紹的MySQL動態修改varchar長度的辦法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的.在此也非常感謝大家對維易PHP網站的支持MYSQL學習
維易PHP培訓學院每天發布《Mysql實例MySQL動態修改varchar長度的方法》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。