有一个关于数据库的VARCHAR类型存储长度的问题?

作者站长头像
站长
· 阅读数 11

最近在使用国产数据库达梦数据库遇到一个问题

数据库中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个回答
avatar
test
2024-07-01
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容