pg数据库从数据库同步结构过来,无法识别字段的默认值
替换pg的字段查询模板(如下图)

SELECT
col.table_schema as schema_name,
col.TABLE_NAME AS tbl_def_key,
col.ordinal_position AS order_value,
col.COLUMN_NAME AS def_key,
d.description AS def_name,
'' AS intro,
col.udt_name AS db_data_type,
CASE WHEN col.character_maximum_length IS NULL AND col.numeric_precision IS NOT NULL THEN col.numeric_precision
ELSE col.character_maximum_length
END AS data_len,
CASE WHEN col.numeric_precision IS NOT NULL THEN (CASE WHEN col.numeric_scale = 0 THEN NULL ELSE col.numeric_scale END)
ELSE NULL
END AS num_scale,
CASE WHEN kc.column_name IS NOT NULL THEN 1 ELSE 0 END AS primary_key,
CASE WHEN col.IS_NULLABLE = 'NO' THEN 1 ELSE 0 END AS not_null,
CASE WHEN col.COLUMN_DEFAULT LIKE 'nextval%' THEN 1 ELSE 0 END AS auto_increment,
regexp_replace(col.column_default, '::[^:]*$', '') AS default_value
FROM
information_schema.COLUMNS col LEFT JOIN (information_schema.key_column_usage kc LEFT JOIN information_schema.table_constraints tc
ON
kc.constraint_name = tc.constraint_name
and tc.constraint_type = 'PRIMARY KEY'
and kc.table_schema=tc.table_schema
and kc.table_name=tc.table_schema
) ON
col.TABLE_NAME = kc.table_name
AND col.COLUMN_NAME = kc.column_name AND kc.table_schema = col.table_schema
LEFT JOIN pg_class C ON C.relname = col.TABLE_NAME
LEFT JOIN pg_namespace n ON col.table_schema = n.nspname AND c.relnamespace = n.oid
LEFT JOIN pg_description d ON d.objoid = C.oid AND d.objsubid = col.ordinal_position
WHERE
col.table_schema IN (:schemaName)
AND nspName IN (:schemaName)
AND CONCAT(col.table_schema, '.', col.TABLE_NAME) IN (:sysTableNames)
ORDER BY
col.table_schema asc, col.TABLE_NAME asc,col.ordinal_position ASC