首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Posgres中,varchar(n)变量是否接受int作为默认值

在Posgres中,varchar(n)变量是否接受int作为默认值
EN

Stack Overflow用户
提问于 2021-06-24 01:02:38
回答 1查看 18关注 0票数 0

因此,我一直在尝试安装一个第三方软件,以及Postgres的超集CockroachDB。值得一提的是,第三个软件支持Postgres,但没有明确声明它支持CockroachDB

在安装期间,它抱怨值类型与默认值不匹配,并查看导致错误的SQL命令(来自软件供应商)。

代码语言:javascript
复制
create table llx_adherent_type_lang
(
  rowid          integer AUTO_INCREMENT PRIMARY KEY,
  fk_type        integer      DEFAULT 0 NOT NULL,
  lang           varchar(5)   DEFAULT 0 NOT NULL,
  label          varchar(255) NOT NULL,
  description    text,
  email          text,
  import_key varchar(14) DEFAULT NULL
)ENGINE=innodb;

对我来说,列lang的类型是varchar(5),但是缺省值设置为整数0。postgres允许这样做吗?我认为默认值必须是最大长度为5个字符的varchar类型?我试图在文档中搜索它,但我没有看到任何关于我的问题的提及。https://www.postgresql.org/docs/12/datatype-character.html

有人知道postgres是否允许默认变量类型与定义的类型不同,还是SQL命令根本无效?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-24 01:08:00

很容易测试:

代码语言:javascript
复制
create table default_test(fld_1 varchar(5) default 0);
\d default_test 
  Table "public.default_test"
 Column |         Type         | Collation | Nullable | Default 
--------+----------------------+-----------+----------+---------
 fld_1  | character varying(5) |           |          | 0

insert into default_test values (default);
select * from default_test ;
 fld_1 
-------
 0

所以,是的,DEFAULT可以是整数。它将被强制转换为varchar

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68104251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档