久久精品综合-欧美精品久久久久久-www一区二区-韩国三级中文字幕hd久久精品-国产一区二区三区在线-日韩免费视频

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

解析MySQL動態更改varchar長度的方法

[摘要]雖然這種情況不應該發生,通常像我們關系型數據庫,我們應該是事先設計好,以后不能改動,但是由于之前工作的疏忽,其實說實話,也不僅僅是我個人的疏忽,主要是溝通上的原因,當然數據庫畢竟是我設計的,所以,還是自我批評一下。說一下情況:MySQL字段有個varchar值字段設置的太短了,設置了30個,(我依...

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

說一下情況: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長度的方法 的詳細內容,更多請關注php中文網其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。




主站蜘蛛池模板: 日本免费不卡视频一区二区三区 | 在线亚洲一区 | 中文国产成人精品久久96 | 日韩精品欧美国产精品亚 | 污视频在线观看视频 | 色护士在线 | 午夜精品久久久久久久2023 | 星辰影院在线观看高清免费观看 | 四虎免费在线视频 | 中文日韩字幕一区在线观看 | 一级做a爰片 | 天天摸日日添狠狠添婷婷 | 日本高清免费在线视频 | 天天干夜夜爽天天操夜夜爽视频 | 亚洲欧美日本在线 | 色伊人网| 欧美在线视频导航 | 视频在线h | 亚洲网站视频在线观看 | 日韩中文字幕一区 | 日批在线播放 | 欧美一区精品二区三区 | 日本高清视频免费在线观看 | 天堂中文字幕在线 | 亚洲 欧美 日韩 综合 | 色呦呦免费观看 | 欧美一级www片免费观看 | 日日拍拍| 欧美视频一区 | 日韩三级免费 | 中文字幕亚洲日本岛国片 | 欧美一级黄色影片 | 天天毛片| 日本免费人做人一区在线观看 | 日韩影院在线观看 | 深爱婷婷| 日本三级在线播放线观看2021 | 天天在线天天综合网色 | 日本亚洲网站 | 天堂a免费视频在线观看 | 亚洲国产成人久久笫一页 |