有一个关于数据库的VARCHAR类型存储长度的问题?
最近在使用国产数据库达梦数据库遇到一个问题
数据库中VARCHAR 字段存储字符的长度受
CHARSET和LENGTH_IN_CHAR 的影响
CHARSET代表字符集编码 默认是GBK 一个中文字符用三个字节表示
LENGTH_IN_CHAR 代表是否以字节存储,0代表字节 1代表字符
那么问题来了 如果一个字段 长度为10 VARECHAR filed(10)
字符集编码是UTF-8 且以字节存储的时候
实际上只能插入3个中文字符 10个英文字符
如果转换以字符存储的话反而能存储40个英文字符和13.3个中文字符 ?
想要达到的需求就是 如果规定了长度是10 那么不管英文中文都只能存储十个
不知道这个怎么实现?
回复
1个回答
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容