【发布时间】:2014-12-01 23:51:18
【问题描述】:
根据documentation,长于字符可变或VARCHAR指定的字符串应该被截断:
如果将一个值显式转换为字符可变(n)或字符(n),那么超长值将被截断为 n 个字符而不会引发错误。 (这也是 SQL 标准所要求的。)
但我无法让它工作。现在文档确实说必须“明确地”将值转换为字符变化,所以也许我错过了这一点。下面是一个简单的测试表:
create table test1(
tval character varying(20));
以下失败并出现错误: value too long for type character varying(20)
insert into test1 values
('this is a super long string that we want to see if it is really truncated');
我怎样才能让它工作?
【问题讨论】:
-
什么文档说长字符串会被自动截断?您能否引用相关文档或提供链接? MySQL 做这种事情(取决于它的配置方式),PostgreSQL 更明智。
标签: postgresql sql-insert create-table postgresql-9.3