postgresql pg_attrdef.adsrc does not exist

现象

pg_attrdef.adsrc does not exist

原因

pg_attrdef表的adsrc字段用于存储元数据中字段的默认值,

在Postgres 12版本中移除了该字段

解决

可通过对adbin字段与adrelid进行函数运算得到,例:

1
2
3
4
select 
pg_get_expr(pg_attrdef.adbin, pg_attrdef.adrelid) as default_val
from
pg_attrdef;

Ref