回答

收藏

空数组作为PostgreSQL默认值的数组列

技术问答 技术问答 472 人阅读 | 0 人回复 | 2023-09-14

我在PostgreSQL 9.数组字段在数据库中定义:
+ }% M& S4 {- ]( i3 ]1 W( Rcharacter varying(64)[]我能有一个空数组,比如{}作为这个字段的默认值吗?什么是语法?" w# Z* E: N1 W& s+ {
若只设置方括号{},则会出现以下错误:
5 N' A8 V$ D# G. c; Z+ S. j4 QSQL error:ERROR:  syntax error at or near "{"LINE 1: ...public"."accounts" ALTER COLUMN "pwd_history" SET DEFAULT                                                                                                                     ^In statement:ALTER TABLE "public"."accounts" ALTER COLUMN "pwd_history" SET DEFAULT               
( Y7 b5 d( n" a1 Y! t9 D& ^7 U2 {    解决方案:                                                                ( F5 M0 j0 h2 y# n2 w- |
                                                                您需要使用显式array将初始化程序强制转换为正确类型:1 {! t' y! g2 Q, @
ALTER TABLE public.accounts     ALTER COLUMN pwd_history SET DEFAULT array[]::varchar[];
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则