在Snowflake数据库数据定义语言中,当我指定VARCHAR(10)
列时,长度“ 10”的度量单位是什么?是字节数还是字符数?
即,如果我要存储一个4字节的字符,是否需要指定VARCHAR(1)
或VARCHAR(4)
?
我正在这里查看文档,https://docs.snowflake.net/manuals/sql-reference/data-types-text.html,我知道
[VARCHAR列中可以存储的Unicode字符的最大数量取决于字符是单字节还是多字节:
和
如果未指定长度,则默认为最大长度。
和
Snowflake当前与常见的CHAR语义有所不同,因为比最大长度短的字符串最后没有空格填充。
但是,我仍然不确定长度说明符的度量单位是什么。
是字符,而不是字节或代码点。这是一个简单的示例:
create table t (x varchar(1)) as select '123' AS x;
String '123' is too long and would be truncated
对:
create or replace table t (x varchar(1)) as select '😊' AS x;
Table T successfully created.
笑脸Unicode字符是U+1F60A
,大于一个字节。