dm7中的length_in_char初始化参数

引用手册中的原话:

LENGTH_IN_CHAR:
VARCHAR 类型对象的长度是否以字符为单位。取值:1、Y表示是,0、N表示否。默认值为0。可选参数
1 或Y:是,所有VARCHAR类型对象的长度以字符为单位。这种情况下,定义长度并非真正按照字符长度调整,而是将存储长度值按照理论字符长度进行放大。所以会出现实际可插入字符数超过定义长度的情况,这种情况也是允许的。同时,存储的字节长度 8188 上限仍然不变,也就是说,即使定义列长度为 8188 字符,其实际能插入的字符串占用总字节长度仍然不能超过8188;
0 或N:否,所有VARCHAR 类型对象的长度以字节为单位。


创建实例的时候,该参数默认为0,varchar类型的字段长度是以字节为单位,那么该参数为0和1的时候,以及编码选择GB18030和UNICODE的时候,varchar类型字段存入的实际情况又是如何呢?下面通过不同的场景测试结果来给出一个确定的答案。

共用的建表语句如下:
create table test(c1 varchar(10));

一、UNICODE_FLAG=0,LENGTH_IN_CHAR=0
–插入10个英文,正常
insert into test(c1) values(‘ABCDEFGHIJ’);
–插入11个英文,错误
insert into test(c1) values(‘ABCDEFGHIJA’);

–插入5个中文,正常
insert into test(c1) values(‘测试一下测’);
–插入6个中文,错误

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值