数据库元数据数据字典查询_9_列出给定表的所有约束
生活随笔
收集整理的這篇文章主要介紹了
数据库元数据数据字典查询_9_列出给定表的所有约束
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? ? ? ? ? ? ? ? ? ? ? ? ? ?列出給定表的所有約束
需求描述
需求:查詢出給定的表emp的相關(guān)的約束信息。
解決方法:通過(guò)各個(gè)數(shù)據(jù)庫(kù)里提供的與約束相關(guān)的數(shù)據(jù)字典進(jìn)行查詢。
注: 數(shù)據(jù)庫(kù)數(shù)據(jù)集SQL腳本詳見(jiàn)如下鏈接地址
員工表結(jié)構(gòu)和數(shù)據(jù)初始化SQL腳本
SQL代碼
-- Sql Server: SELECT B.name AS Constraint_Name,B.type,CASE B.type WHEN 'PK' THEN '主鍵'WHEN 'F' THEN '外鍵'WHEN 'D' THEN '默認(rèn)值約束'WHEN 'C' THEN '檢查約束' END AS ConstaintType_Desc,CASE B.type WHEN 'PK' THEN G.COLUMN_NAMEWHEN 'F' THEN G.COLUMN_NAMEWHEN 'D' THEN E.nameWHEN 'C' THEN F.name END AS Column_name,CASE B.type WHEN 'PK' THEN NULLWHEN 'F' THEN NULLWHEN 'D' THEN C.definitionWHEN 'C' THEN D.definition END AS Define,B.create_date AS Create_Time,B.modify_date AS Modify_TimeFROM sys.all_objects A JOIN sys.all_objects BON A.object_id = B.parent_object_idJOIN sys.default_constraints CON B.parent_object_id = B.parent_object_idJOIN sys.check_constraints DON B.parent_object_id = D.parent_object_idJOIN sys.all_columns EON E.object_id = C.parent_object_id AND C.parent_column_id = E.column_idJOIN sys.all_columns FON F.object_id = D.parent_object_id AND D.parent_column_id = F.column_id LEFT JOIN information_schema.key_column_usage GON B.name = G.CONSTRAINT_NAME WHERE A.NAME = 'EMP'執(zhí)行結(jié)果
注:
1?數(shù)據(jù)庫(kù)對(duì)象類型這列為自己添加的備注。
2 sys.all_objects里的type的枚舉類型有如下:
-- Mysql: -- 注意mysql內(nèi)并無(wú)同一視圖可以滿足上述需求。-- Oracle: SELECT A.CONSTRAINT_NAME,A.TABLE_NAME,A.COLUMN_NAME,B.CONSTRAINT_TYPE FROM USER_CONS_COLUMNS A, USER_CONSTRAINTS B WHERE A.CONSTRAINT_NAME = B.CONSTRAINT_NAMEAND A.TABLE_NAME = 'EMP'?
總結(jié)
以上是生活随笔為你收集整理的数据库元数据数据字典查询_9_列出给定表的所有约束的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 定制银行卡怎么申请
- 下一篇: 微信绑定信用卡的流程是什么