1

我创建了一个域:

CREATE DOMAIN public."POSTAL_CODE"
  AS character(5)
  NOT NULL;

我试图设置默认值:

ALTER DOMAIN public."POSTAL_CODE"
SET DEFAULT "00000";

但得到了错误:

错误:列“00000”不存在

然后我设法使用 设置默认值DEFAULT 00000,但我认为它被强制转换INTEGER为显示为0而不是00000. 我也试过了character(5)[],也 {'0','0','0','0','0'}没有成功。

如何获取默认值作为文本而不出现错误?

我使用了 PostgreSQL。

4

3 回答 3

4

在 SQL 中,双引号" 用于引用名为“select”的列或表

SQL 中的字符串常量是由单引号 ( ) 包围的任意字符序列',例如'This is a string'。所以这与双引号字符 ( ")不同

因此,您必须使用如下所示的单引号

select * from test where old_code = '220088242'

所以在你的情况下,它应该如下所示

ALTER DOMAIN public."POSTAL_CODE"
    SET DEFAULT '00000';
于 2018-08-14T09:26:07.603 回答
1

试试这个:值应该是像'00000'这样的单引号

ALTER DOMAIN public."POSTAL_CODE" set default '00000';
于 2018-08-14T09:13:17.280 回答
0

尝试这个

Alter table <table name> ALTER <column name> TYPE character varying, ALTER <column name> SET DEFAULT '00000'
于 2018-08-14T09:21:34.400 回答