VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

字符串CHAR/VARCHAR/VARCHAR2指定BYTE和CHAR关键字

功能描述

常见的字符串类型varchar2、char、varchar数据类型的字段长度默认为字节byte,常见写法如varchar(10)。而在UTF-8字符集中,中文汉字一个字符占用了3字节,如果该字段指定限制字符串长度为10,实际上只能插入3个UTF-8汉字字符。

为了解决这种情况,Vastbase支持在创建字段的时候显式定义字段的长度单位为byte或者character(即在定义varchar2、char、varchar数据类型时支持指定byte和character关键字)。

  • byte为按字节来定义字段长度,是该数据类型的缺省值。

  • character为按字符来定义字段长度,可以简写成char。

注意事项

语法格式

varchar(n byte)或者varchar(n character)

参数说明

  • n character

    表明该字段允许输入n个字符,等于n char。

  • n byte

    表明该字段允许输入n个字节。

示例

create table test_char(
C1 char(10 char), --10 character ,允许输入最多10个字符,包括英文和中文
C2 char(10 byte), --10 byte,允许输入最多10个字节,能允许输入的字符数需要以字符具体所占字节数为准计算
C3 varchar(10 character), --10 character
C4 varchar(10), --10 byte
C5 char, --不指定限制长度,默认允许输入最多1个字节
C6 varchar, --不指定限制长度,默认不限制输入长度
C7 varchar2(10 character), --10 character
C8 varchar2(10) --10 byte
);

返回结果如下,则表示字符串char/varchar/varchar2指定byte和char关键字:

CREATE TABLE