如何在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个字符,请使用一个检查约束或一个用空格填充值的触发器。