| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- create view list_column as
- SELECT c.relname AS table_name,
- a.attname AS column_name,
- d.description AS column_comment,
- CASE
- WHEN a.attnotnull AND con.conname IS NULL THEN 1
- ELSE 0
- END AS is_required,
- CASE
- WHEN con.conname IS NOT NULL THEN 1
- ELSE 0
- END AS is_pk,
- a.attnum AS sort,
- CASE
- WHEN "position"(pg_get_expr(ad.adbin, ad.adrelid), ((c.relname::text || '_'::text) || a.attname
- ::text) || '_seq'::text) > 0 THEN 1
- ELSE 0
- END AS is_increment,
- btrim(
- CASE
- WHEN t.typelem <> 0::oid AND t.typlen = '-1'::integer THEN 'ARRAY'::text
- ELSE
- CASE
- WHEN t.typtype = 'd'::"char" THEN format_type(t.typbasetype, NULL::integer)
- ELSE format_type(a.atttypid, NULL::integer)
- END
- END, '"'::text) AS column_type
- FROM pg_attribute a
- JOIN (pg_class c
- JOIN pg_namespace n ON c.relnamespace = n.oid) ON a.attrelid = c.oid
- LEFT JOIN pg_description d ON d.objoid = c.oid AND a.attnum = d.objsubid
- LEFT JOIN pg_constraint con ON con.conrelid = c.oid AND (a.attnum = ANY (con.conkey))
- LEFT JOIN pg_attrdef ad ON a.attrelid = ad.adrelid AND a.attnum = ad.adnum
- LEFT JOIN pg_type t ON a.atttypid = t.oid
- WHERE (c.relkind = ANY (ARRAY['r'::"char", 'p'::"char"]))
- AND a.attnum > 0
- AND n.nspname = 'public'::name
- ORDER BY c.relname, a.attnum;
- create view list_table as
- SELECT c.relname AS table_name,
- obj_description(c.oid) AS table_comment,
- CURRENT_TIMESTAMP AS create_time,
- CURRENT_TIMESTAMP AS update_time
- FROM pg_class c
- LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
- WHERE (c.relkind = ANY (ARRAY['r'::"char", 'p'::"char"]))
- AND c.relname !~~ 'spatial_%'::text AND n.nspname = 'public'::name AND n.nspname <> ''::name;
- CREATE OR REPLACE FUNCTION substring_index(varchar, varchar, integer)
- RETURNS varchar AS $$
- DECLARE
- tokens varchar[];
- length integer ;
- indexnum integer;
- BEGIN
- tokens := pg_catalog.string_to_array($1, $2);
- length := pg_catalog.array_upper(tokens, 1);
- indexnum := length - ($3 * -1) + 1;
- IF $3 >= 0 THEN
- RETURN pg_catalog.array_to_string(tokens[1:$3], $2);
- ELSE
- RETURN pg_catalog.array_to_string(tokens[indexnum:length], $2);
- END IF;
- END;
- $$ IMMUTABLE STRICT LANGUAGE PLPGSQL;
- CREATE OR REPLACE FUNCTION find_in_set(
- value anyelement,
- string_list text)
- RETURNS integer
- LANGUAGE 'plpgsql'
- COST 100
- VOLATILE PARALLEL UNSAFE
- AS $BODY$
- DECLARE
- position INTEGER;
- BEGIN
- IF string_list = '' THEN
- RETURN 0;
- ELSE
- position := array_position(string_to_array(string_list, ','), value::TEXT);
- RETURN position;
- END IF;
- END;
- $BODY$;
- DROP view list_column;
- create view list_column as
- SELECT c.relname AS table_name,
- a.attname AS column_name,
- d.description AS column_comment,
- CASE
- WHEN a.attnotnull AND con.conname IS NULL THEN 1
- ELSE 0
- END AS is_required,
- CASE
- WHEN con.conname IS NOT NULL THEN 1
- ELSE 0
- END AS is_pk,
- a.attnum AS sort,
- CASE
- WHEN "position"(pg_get_expr(ad.adbin, ad.adrelid), ((c.relname::text || '_'::text) || a.attname
- ::text) || '_seq'::text) > 0 THEN 1
- ELSE 0
- END AS is_increment,
- btrim(
- CASE
- WHEN t.typelem <> 0::oid AND t.typlen = '-1'::integer THEN 'ARRAY'::text
- ELSE
- CASE
- WHEN t.typtype = 'd'::"char" THEN format_type(t.typbasetype, NULL::integer)
- ELSE format_type(a.atttypid, NULL::integer)
- END
- END, '"'::text) AS column_type
- FROM pg_attribute a
- JOIN (pg_class c
- JOIN pg_namespace n ON c.relnamespace = n.oid) ON a.attrelid = c.oid
- LEFT JOIN pg_description d ON d.objoid = c.oid AND a.attnum = d.objsubid
- LEFT JOIN pg_constraint con ON con.conrelid = c.oid AND (a.attnum = ANY (con.conkey))
- LEFT JOIN pg_attrdef ad ON a.attrelid = ad.adrelid AND a.attnum = ad.adnum
- LEFT JOIN pg_type t ON a.atttypid = t.oid
- WHERE (c.relkind = ANY (ARRAY['r'::"char", 'p'::"char"]))
- AND a.attnum > 0
- AND n.nspname = 'public'::name
- ORDER BY c.relname, a.attnum;
- DROP view list_table;
- create view list_table as
- -- 查询表的描述信息
- SELECT
- --n.nspname as "Schema",
- c.relname as "table_name",
- -- 根据需要添加更多的字段注释
- d.description as "table_comment",
- CURRENT_TIMESTAMP AS create_time,
- CURRENT_TIMESTAMP AS update_time
- FROM
- pg_class c
- LEFT JOIN
- pg_namespace n ON n.oid = c.relnamespace
- LEFT JOIN
- pg_description d ON d.objoid = c.oid AND d.objsubid = 0
- WHERE
- -- 替换'YourTableName'为您的表名
- c.relkind = 'r' -- r = regular table
- --AND n.nspname NOT IN ('pg_catalog', 'pg_toast','')
- AND n.nspname = 'public' and (c.relname not like 'gen_%' and c.relname not like 'qrtz_%')
- AND pg_catalog.pg_table_is_visible(c.oid)
|