information_schema.sql
来自「PostgreSQL7.4.6 for Linux」· SQL 代码 · 共 1,693 行 · 第 1/5 页
SQL
1,693 行
CAST(null AS sql_identifier) AS self_referencing_column_name, CAST(null AS character_data) AS reference_generation, CAST(null AS sql_identifier) AS user_defined_type_catalog, CAST(null AS sql_identifier) AS user_defined_type_schema, CAST(null AS sql_identifier) AS user_defined_name FROM pg_namespace nc, pg_class c, pg_user u WHERE c.relnamespace = nc.oid AND u.usesysid = c.relowner AND c.relkind IN ('r', 'v') AND (u.usename = current_user OR has_table_privilege(c.oid, 'SELECT') OR has_table_privilege(c.oid, 'INSERT') OR has_table_privilege(c.oid, 'UPDATE') OR has_table_privilege(c.oid, 'DELETE') OR has_table_privilege(c.oid, 'RULE') OR has_table_privilege(c.oid, 'REFERENCES') OR has_table_privilege(c.oid, 'TRIGGER') );GRANT SELECT ON tables TO PUBLIC;/* * 20.59 * TRIGGERED_UPDATE_COLUMNS view */-- PostgreSQL doesn't allow the specification of individual triggered-- update columns, so this view is empty.CREATE VIEW triggered_update_columns AS SELECT CAST(current_database() AS sql_identifier) AS trigger_catalog, CAST(null AS sql_identifier) AS trigger_schema, CAST(null AS sql_identifier) AS trigger_name, CAST(current_database() AS sql_identifier) AS event_object_catalog, CAST(null AS sql_identifier) AS event_object_schema, CAST(null AS sql_identifier) AS event_object_table, CAST(null AS sql_identifier) AS event_object_column WHERE false;GRANT SELECT ON triggered_update_columns TO PUBLIC;/* * 20.62 * TRIGGERS view */CREATE VIEW triggers AS SELECT CAST(current_database() AS sql_identifier) AS trigger_catalog, CAST(n.nspname AS sql_identifier) AS trigger_schema, CAST(t.tgname AS sql_identifier) AS trigger_name, CAST(em.text AS character_data) AS event_manipulation, CAST(current_database() AS sql_identifier) AS event_object_catalog, CAST(n.nspname AS sql_identifier) AS event_object_schema, CAST(c.relname AS sql_identifier) AS event_object_table, CAST(null AS cardinal_number) AS action_order, CAST(null AS character_data) AS action_condition, CAST( substring(pg_get_triggerdef(t.oid) from position('EXECUTE PROCEDURE' in substring(pg_get_triggerdef(t.oid) from 48)) + 47) AS character_data) AS action_statement, CAST( CASE WHEN t.tgtype & 1 = 1 THEN 'ROW' ELSE 'STATEMENT' END AS character_data) AS action_orientation, CAST( CASE WHEN t.tgtype & 2 = 2 THEN 'BEFORE' ELSE 'AFTER' END AS character_data) AS condition_timing, CAST(null AS sql_identifier) AS condition_reference_old_table, CAST(null AS sql_identifier) AS condition_reference_new_table FROM pg_namespace n, pg_class c, pg_trigger t, pg_user u, (SELECT 4, 'INSERT' UNION ALL SELECT 8, 'DELETE' UNION ALL SELECT 16, 'UPDATE') AS em (num, text) WHERE n.oid = c.relnamespace AND c.oid = t.tgrelid AND c.relowner = u.usesysid AND t.tgtype & em.num <> 0 AND NOT t.tgisconstraint AND u.usename = current_user;GRANT SELECT ON triggers TO PUBLIC;/* * 20.63 * USAGE_PRIVILEGES view */-- Of the things currently implemented in PostgreSQL, usage privileges-- apply only to domains. Since domains have no real privileges, we-- represent all domains with implicit usage privilege here.CREATE VIEW usage_privileges AS SELECT CAST(u.usename AS sql_identifier) AS grantor, CAST('PUBLIC' AS sql_identifier) AS grantee, CAST(current_database() AS sql_identifier) AS object_catalog, CAST(n.nspname AS sql_identifier) AS object_schema, CAST(t.typname AS sql_identifier) AS object_name, CAST('DOMAIN' AS character_data) AS object_type, CAST('USAGE' AS character_data) AS privilege_type, CAST('NO' AS character_data) AS is_grantable FROM pg_user u, pg_namespace n, pg_type t WHERE u.usesysid = t.typowner AND t.typnamespace = n.oid AND t.typtype = 'd';GRANT SELECT ON usage_privileges TO PUBLIC;/* * 20.65 * VIEW_COLUMN_USAGE */CREATE VIEW view_column_usage AS SELECT DISTINCT CAST(current_database() AS sql_identifier) AS view_catalog, CAST(nv.nspname AS sql_identifier) AS view_schema, CAST(v.relname AS sql_identifier) AS view_name, CAST(current_database() AS sql_identifier) AS table_catalog, CAST(nt.nspname AS sql_identifier) AS table_schema, CAST(t.relname AS sql_identifier) AS table_name, CAST(a.attname AS sql_identifier) AS column_name FROM pg_user, pg_namespace nv, pg_class v, pg_depend dv, pg_depend dt, pg_class t, pg_namespace nt, pg_attribute a, pg_user u WHERE nv.oid = v.relnamespace AND v.relkind = 'v' AND v.oid = dv.refobjid AND dv.refclassid = 'pg_catalog.pg_class'::regclass AND dv.classid = 'pg_catalog.pg_rewrite'::regclass AND dv.deptype = 'i' AND dv.objid = dt.objid AND dv.refobjid <> dt.refobjid AND dt.classid = 'pg_catalog.pg_rewrite'::regclass AND dt.refclassid = 'pg_catalog.pg_class'::regclass AND dt.refobjid = t.oid AND t.relnamespace = nt.oid AND t.relkind IN ('r', 'v') AND t.oid = a.attrelid AND dt.refobjsubid = a.attnum AND t.relowner = u.usesysid AND u.usename = current_user;GRANT SELECT ON view_column_usage TO PUBLIC;/* * 20.66 * VIEW_TABLE_USAGE */CREATE VIEW view_table_usage AS SELECT DISTINCT CAST(current_database() AS sql_identifier) AS view_catalog, CAST(nv.nspname AS sql_identifier) AS view_schema, CAST(v.relname AS sql_identifier) AS view_name, CAST(current_database() AS sql_identifier) AS table_catalog, CAST(nt.nspname AS sql_identifier) AS table_schema, CAST(t.relname AS sql_identifier) AS table_name FROM pg_user, pg_namespace nv, pg_class v, pg_depend dv, pg_depend dt, pg_class t, pg_namespace nt, pg_user u WHERE nv.oid = v.relnamespace AND v.relkind = 'v' AND v.oid = dv.refobjid AND dv.refclassid = 'pg_catalog.pg_class'::regclass AND dv.classid = 'pg_catalog.pg_rewrite'::regclass AND dv.deptype = 'i' AND dv.objid = dt.objid AND dv.refobjid <> dt.refobjid AND dt.classid = 'pg_catalog.pg_rewrite'::regclass AND dt.refclassid = 'pg_catalog.pg_class'::regclass AND dt.refobjid = t.oid AND t.relnamespace = nt.oid AND t.relkind IN ('r', 'v') AND t.relowner = u.usesysid AND u.usename = current_user;GRANT SELECT ON view_table_usage TO PUBLIC;/* * 20.68 * VIEWS view */CREATE VIEW views AS SELECT CAST(current_database() AS sql_identifier) AS table_catalog, CAST(nc.nspname AS sql_identifier) AS table_schema, CAST(c.relname AS sql_identifier) AS table_name, CAST( CASE WHEN u.usename = current_user THEN pg_get_viewdef(c.oid) ELSE null END AS character_data) AS view_definition, CAST('NONE' AS character_data) AS check_option, CAST(null AS character_data) AS is_updatable, -- FIXME CAST(null AS character_data) AS is_insertable_into -- FIXME FROM pg_namespace nc, pg_class c, pg_user u WHERE c.relnamespace = nc.oid AND u.usesysid = c.relowner AND c.relkind = 'v' AND (u.usename = current_user OR has_table_privilege(c.oid, 'SELECT') OR has_table_privilege(c.oid, 'INSERT') OR has_table_privilege(c.oid, 'UPDATE') OR has_table_privilege(c.oid, 'DELETE') OR has_table_privilege(c.oid, 'RULE') OR has_table_privilege(c.oid, 'REFERENCES') OR has_table_privilege(c.oid, 'TRIGGER') );GRANT SELECT ON views TO PUBLIC;-- The following views have dependencies that force them to appear out of order./* * 20.21 * DATA_TYPE_PRIVILEGES view */CREATE VIEW data_type_privileges AS SELECT CAST(current_database() AS sql_identifier) AS object_catalog, CAST(x.objschema AS sql_identifier) AS object_schema, CAST(x.objname AS sql_identifier) AS object_name, CAST(x.objtype AS character_data) AS object_type, CAST(x.objdtdid AS sql_identifier) AS dtd_identifier FROM ( SELECT table_schema, table_name, 'TABLE'::text, dtd_identifier FROM columns UNION ALL SELECT domain_schema, domain_name, 'DOMAIN'::text, dtd_identifier FROM domains UNION ALL SELECT specific_schema, specific_name, 'ROUTINE'::text, dtd_identifier FROM parameters UNION ALL SELECT specific_schema, specific_name, 'ROUTINE'::text, dtd_identifier FROM routines ) AS x (objschema, objname, objtype, objdtdid);GRANT SELECT ON data_type_privileges TO PUBLIC;/* * 20.27 * ELEMENT_TYPES view */CREATE VIEW element_types AS SELECT CAST(current_database() AS sql_identifier) AS object_catalog, CAST(n.nspname AS sql_identifier) AS object_schema, CAST(x.objname AS sql_identifier) AS object_name, CAST(x.objtype AS character_data) AS object_type, CAST(x.objdtdid AS sql_identifier) AS array_type_identifier, CAST( CASE WHEN nbt.nspname = 'pg_catalog' THEN format_type(bt.oid, null) ELSE 'USER-DEFINED' END AS character_data) AS data_type, CAST(null AS cardinal_number) AS character_maximum_length, CAST(null AS cardinal_number) AS character_octet_length, CAST(null AS sql_identifier) AS character_set_catalog, CAST(null AS sql_identifier) AS character_set_schema, CAST(null AS sql_identifier) AS character_set_name, CAST(null AS sql_identifier) AS collation_catalog, CAST(null AS sql_identifier) AS collation_schema, CAST(null AS sql_identifier) AS collation_name, CAST(null AS cardinal_number) AS numeric_precision, CAST(null AS cardinal_number) AS numeric_precision_radix, CAST(null AS cardinal_number) AS numeric_scale, CAST(null AS cardinal_number) AS datetime_precision, CAST(null AS character_data) AS interval_type, CAST(null AS character_data) AS interval_precision, CAST(null AS character_data) AS domain_default, -- XXX maybe a bug in the standard CAST(current_database() AS sql_identifier) AS udt_catalog, CAST(nbt.nspname AS sql_identifier) AS udt_schema, CAST(bt.typname AS sql_identifier) AS udt_name, CAST(null AS sql_identifier) AS scope_catalog, CAST(null AS sql_identifier) AS scope_schema, CAST(null AS sql_identifier) AS scope_name, CAST(null AS cardinal_number) AS maximum_cardinality, CAST('a' || x.objdtdid AS sql_identifier) AS dtd_identifier FROM pg_namespace n, pg_type at, pg_namespace nbt, pg_type bt, ( /* columns */ SELECT c.relnamespace, CAST(c.relname AS sql_identifier), 'TABLE'::text, a.attnum, a.atttypid FROM pg_class c, pg_attribute a WHERE c.oid = a.attrelid AND c.relkind IN ('r', 'v') AND attnum > 0 AND NOT attisdropped UNION ALL /* domains */ SELECT t.typnamespace, CAST(t.typname AS sql_identifier), 'DOMAIN'::text, 1, t.typbasetype FROM pg_type t WHERE t.typtype = 'd' UNION ALL /* parameters */ SELECT p.pronamespace, CAST(p.proname || '_' || CAST(p.oid AS text) AS sql_identifier), 'ROUTINE'::text, pos.n, p.proargtypes[pos.n-1] FROM pg_proc p, _pg_keypositions() AS pos(n) WHERE p.pronargs >= pos.n UNION ALL /* result types */ SELECT p.pronamespace, CAST(p.proname || '_' || CAST(p.oid AS text) AS sql_identifier), 'ROUTINE'::text, 0, p.prorettype FROM pg_proc p ) AS x (objschema, objname, objtype, objdtdid, objtypeid) WHERE n.oid = x.objschema AND at.oid = x.objtypeid AND (at.typelem <> 0 AND at.typlen = -1) AND at.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?