在postgresql中,如何在char中保留空格



如何在char中保留空格?我创建了2个表,

create table test_1 (a int, b char(10)) ;
create table test_2 (a int, b varchar(255));

并在test_1 中插入一行

insert into test_1 values (1 ,'     ');

insert into test_2 select * from test_1;
select a, length(b) from test_2;

并返回

| a        | length(b)      |
| -------- | -------------- |
| 1        | 0              |

我期待bleow,就像oracle做一样

| a        | length(b)      |
| -------- | -------------- |
| 1        | 10             |

我有什么选择吗?

无法更改此行为。

还应注意以下事项:

CREATE TABLE test_1 (a int, b char(10));
INSERT INTO test_1 VALUES (1, 'x');
SELECT length(b) FROM test_1;
length 
--------
1
(1 row)
SELECT 'y' || b FROM test_1;
?column? 
----------
yx
(1 row)

所有这些都按照SQL标准的要求工作。

帮自己一个忙,千万不要使用char。如果您需要值始终包含10个字符,请使用一个检查约束或一个用空格填充值的触发器。

相关内容

  • 没有找到相关文章

最新更新