最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

MySQL動態(tài)修改varchar長度的方法

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 20:47:14
文檔

MySQL動態(tài)修改varchar長度的方法

MySQL動態(tài)修改varchar長度的方法:雖然這種情況不應(yīng)該發(fā)生,通常像我們關(guān)系型數(shù)據(jù)庫,我們應(yīng)該是事先設(shè)計(jì)好,以后不能改動,但是由于之前工作的疏忽,其實(shí)說實(shí)話,也不僅僅是我個人的疏忽,主要是溝通上的原因,當(dāng)然數(shù)據(jù)庫畢竟是我設(shè)計(jì)的,所以,還是自我批評一下。 說一下情況:MySQL字段有個
推薦度:
導(dǎo)讀MySQL動態(tài)修改varchar長度的方法:雖然這種情況不應(yīng)該發(fā)生,通常像我們關(guān)系型數(shù)據(jù)庫,我們應(yīng)該是事先設(shè)計(jì)好,以后不能改動,但是由于之前工作的疏忽,其實(shí)說實(shí)話,也不僅僅是我個人的疏忽,主要是溝通上的原因,當(dāng)然數(shù)據(jù)庫畢竟是我設(shè)計(jì)的,所以,還是自我批評一下。 說一下情況:MySQL字段有個

雖然這種情況不應(yīng)該發(fā)生,通常像我們關(guān)系型數(shù)據(jù)庫,我們應(yīng)該是事先設(shè)計(jì)好,以后不能改動,但是由于之前工作的疏忽,其實(shí)說實(shí)話,也不僅僅是我個人的疏忽,主要是溝通上的原因,當(dāng)然數(shù)據(jù)庫畢竟是我設(shè)計(jì)的,所以,還是自我批評一下。

說一下情況:MySQL字段有個varchar值字段設(shè)置的太短了,設(shè)置了30個,(我依稀記得varchar是可擴(kuò)展的,當(dāng)然現(xiàn)實(shí)并不容忍我的依?。?,所以我只能找一個方法在保證數(shù)據(jù)庫數(shù)據(jù)不變的情況下,動態(tài)修改varchar字段的長度,找了一段時間,終于讓我找到了。

alter table 表名 modify column 字段名 varchar(數(shù)量);

這個功能還是比較強(qiáng)大的,但是還是提醒大家最好設(shè)計(jì)的時候就不要出現(xiàn)這種問題啊。

PS:mysql中的設(shè)置varchar長度問題

如果某一項(xiàng)中設(shè)置的是varchar(50)

那么對英文當(dāng)然是50

那么對中文呢

utf-8的中文占3個字節(jié)

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

mysql varchar(50) 不管中文 還是英文 都是存50個的

MySQL5的文檔,其中對varchar字段類型這樣描述:varchar(m) 變長字符串。M 表示最大列長度。M的范圍是0到65,535。(VARCHAR的最大實(shí)際長度由最長的行的大小和使用的字符集確定,最大有效長度是65,532字節(jié))。

為何會這般變換?真是感覺MySQL的手冊做的太不友好了,因?yàn)槟阋屑?xì)的繼續(xù)往下讀才會發(fā)現(xiàn)這段描述:MySQL 5.1遵從標(biāo)準(zhǔn)SQL規(guī)范,并且不刪除VARCHAR值的尾部空格。VARCHAR保存時用一個字節(jié)或兩個字節(jié)長的前綴+數(shù)據(jù)。如果VARCHAR列聲明的長度大于255,長度前綴是兩個字節(jié)。

好了,貌似懂了一點(diǎn)。但具體他說的長度大于255時使用2個字節(jié)長度前綴,小學(xué)減法題:65535 - 2 = 65533啊。不知道這些大牛如何計(jì)算的,暫且保留疑問吧?

注:我測試了一下使用UTF8編碼,varchar的最大長度為21854字節(jié)。

在mysql 5.0.45版本,數(shù)據(jù)庫編碼utf8下進(jìn)行測試:varchar最長定義為21785。也就是說不論字母、數(shù)字、漢字,只能放21785個。

推想:varchar字節(jié)最大65535,utf8編碼一個字符3個字節(jié)65535/3=21785。

以上所述是小編給大家介紹的MySQL動態(tài)修改varchar長度的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持

您可能感興趣的文章:

  • 對比MySQL中int、char以及varchar的性能
  • Mysql中varchar長度設(shè)置方法
  • Mysql數(shù)據(jù)庫中把varchar類型轉(zhuǎn)化為int類型的方法
  • MySQL數(shù)據(jù)庫中把int轉(zhuǎn)化varchar引發(fā)的慢查詢
  • MySQL中把varchar類型轉(zhuǎn)為date類型方法詳解
  • MySQL中VARCHAR與CHAR格式數(shù)據(jù)的區(qū)別
  • 探究MySQL中varchar的定義長度
  • mysql varchar類型求和實(shí)例操作
  • 聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    MySQL動態(tài)修改varchar長度的方法

    MySQL動態(tài)修改varchar長度的方法:雖然這種情況不應(yīng)該發(fā)生,通常像我們關(guān)系型數(shù)據(jù)庫,我們應(yīng)該是事先設(shè)計(jì)好,以后不能改動,但是由于之前工作的疏忽,其實(shí)說實(shí)話,也不僅僅是我個人的疏忽,主要是溝通上的原因,當(dāng)然數(shù)據(jù)庫畢竟是我設(shè)計(jì)的,所以,還是自我批評一下。 說一下情況:MySQL字段有個
    推薦度:
    標(biāo)簽: 修改 方法 長度
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top