私の BSOOC では、テーブルの主キーと外部キーの情報をクエリする SQL が必要です。昨晩午前 1 時まで勉強し、最終的にこの目標を達成しました:
Oracle:
select o.obj# as objectId, o.name AS tableName。 , oc.name AS 制約名,
decode(c.type#, 1, 'C', 2, 'P', 3, 'U',
4, 'R', 5, 'V', 6, 'O '、7、'C'、'?') asconstraintType、
col.nameAScolumnName
from sys.con$oc,sys.con$rc,
sys.obj$ro,sys.obj$o,sys .obj$ oi ,
sys.cdef$ c,
sys.col$col, sys.ccol$ cc, sys.attrcol$ ac
ここで、oc.con# = c.con#
および c.obj# = o。 obj#
および c.rcon# = rc.con#( )
および c.enabled = oi.obj#( )
および c.robj# = ro.obj#( )
および c.type# != 8
and c.type # != 12 /* ロググループは含まれません */
and c.con# = cc.con#
and cc.obj# =col.obj#
and cc.intcol# = col.intcol #
と cc .obj# = o.obj#
とcol.obj# = ac.obj#( )
とcol.intcol# = ac.intcol#( )
と o.name = 'あなたのテーブル'
SQL Server:
SELECT sysobjects.id objectId,
OBJECT_NAME(sysobjects.parent_obj) tableName,
sysobjects.name 制約名,
sysobjects.xtype AS 制約タイプ,
syscolumns.name AS 列名
FROM sysobjects INNER JOIN sysconstraints
ON object.x に入力します( 'C' 、 'F'、 'PK'、 'UQ'、 'D')
AND sysobjects.id = sysconstraints.constid
LEFT OUTER JOIN syscolumns ON sysconstraints.id = syscolumns.id
WHERE OBJECT_NAME(sysobjects.parent_obj )='your table'
他のデータベースにはまだ実装する時間がありません。