sql – 使用表,字段和模式名称查找引用的表名
发布时间:2021-01-11 18:04:34 所属栏目:MsSql教程 来源:网络整理
导读:我有一个要求,我需要通过表中的特定字段(外键表)使用此字段名称,表名(此字段所在的位置)和模式名称(其中)查找引用的表名(主键表名)桌子,因此场地居住) 例如: Schema1.TableA Id (Integer,PK) Name varcharSchema2.TableB Id (integer,PK) A_Id (integer,FK r
|
我有一个要求,我需要通过表中的特定字段(外键表)使用此字段名称,表名(此字段所在的位置)和模式名称(其中)查找引用的表名(主键表名)桌子,因此场地居住) 例如: Schema1.TableA Id (Integer,PK) Name varchar Schema2.TableB Id (integer,PK) A_Id (integer,FK referencing TableA.Id) Name varchar 我需要将A_Id,TableB和Schema2传递给函数并获取Schema1.TableA作为结果. 我正在使用Postgres 8.3. 解决方法如果您不需要将其移植到另一个RDBMS,那么在pg_catalog中使用目录表而不是标准信息模式会更快更简单:SELECT c.confrelid::regclass::text AS referenced_table,c.conname AS fk_name,pg_get_constraintdef(c.oid) AS fk_definition FROM pg_attribute a JOIN pg_constraint c ON (c.conrelid,c.conkey[1]) = (a.attrelid,a.attnum) WHERE a.attrelid = '"Schema2"."TableB"'::regclass -- table name AND a.attname = 'A_Id' -- column name AND c.contype = 'f' ORDER BY conrelid::regclass::text,contype DESC; 返回: referenced_table | fk_name | fk_definition
------------------+-------------------------+----------------------------------------------
Schema1.TableA | b1_fkey | FOREIGN KEY ("B_id") REFERENCES "Schema1"."TableA"("A_id")
笔记 >另外两列仅用于定向.根据你的Q,你只需要第一列. 查看手册中的 有关: > PostgreSQL drop constraint with unknown name (编辑:财气旺网 - 财气网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – SQL Server如何确定缺失索引请求中的键列顺序
- sql-server-2008 – SQL Server 2008 – 一个表24gb,删除了
- sql – 如何在特定字符之前替换字符串的子字符串?
- 商业周刊:Windows 2003代码越精简越安全
- 丹丁DX3音箱套装热卖,Mini音响概念一炮走红
- SQL Server存储过程以发送电子邮件
- sql-server – EXISTS(SELECT 1 …)vs EXISTS(SELECT * …)
- 如何使用SQL MAX函数获取行的所有字段?
- sql-server – 我有关于死锁的数据,但我无法理解它们为什么
- 微软暂缓反垄断处罚申请无效 Windows面临修改


