蒙在股里 发表于 2015-1-16 22:37:02

MYSQL教程之查询表主键外键信息的SQL

如果你需要额外的功能的话,MySQL的普及性实际上可以让你发现总有一个厂商会提供准确的解决方案,而这个方案会满足你的需要和需求。我的BSOOC里必要一个查询表主键外键信息的SQL,昨晚研讨到清晨1点,终究能完成这个方针:
Oracle:
selecto.obj#asobjectId,o.nameAStableName,oc.nameASconstraintName,
decode(c.type#,1,C,2,P,3,U,
4,R,5,V,6,O,7,C,?)asconstraintType,
col.nameAScolumnName

fromsys.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
whereoc.con#=c.con#
andc.obj#=o.obj#
andc.rcon#=rc.con#(+)
andc.enabled=oi.obj#(+)
andc.robj#=ro.obj#(+)
andc.type#!=8
andc.type#!=12/*dontincludeloggroups*/
andc.con#=cc.con#
andcc.obj#=col.obj#
andcc.intcol#=col.intcol#
andcc.obj#=o.obj#
andcol.obj#=ac.obj#(+)
andcol.intcol#=ac.intcol#(+)
ando.name=yourtable

SQLServer:
SELECTsysobjects.idobjectId,
OBJECT_NAME(sysobjects.parent_obj)tableName,
sysobjects.nameconstraintName,
sysobjects.xtypeASconstraintType,
syscolumns.nameAScolumnName
FROMsysobjectsINNERJOINsysconstraints
ONsysobjects.xtypein(C,F,PK,UQ,D)
ANDsysobjects.id=sysconstraints.constid
LEFTOUTERJOINsyscolumnsONsysconstraints.id=syscolumns.id
WHEREOBJECT_NAME(sysobjects.parent_obj)=yourtable

别的数据库还没工夫往完成.

“通过有能力的DBA的一个简单计划,MySQL可以达到令人难以想像的运行速度,”一位资深DBA如此表示。MySQL中没有多余的功能来拖累CPU或占用内存。

分手快乐 发表于 2015-1-19 18:52:18

备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。

莫相离 发表于 2015-1-25 11:08:31

我们学到了什么?思考问题的时候从表的角度来思考问

蒙在股里 发表于 2015-2-2 21:50:43

原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。

只想知道 发表于 2015-2-8 07:39:38

但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)

活着的死人 发表于 2015-2-25 00:20:20

外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。

谁可相欹 发表于 2015-3-7 14:43:43

where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。

透明 发表于 2015-3-15 07:44:48

光写几个SQL实在叫无知。

柔情似水 发表于 2015-3-21 21:59:00

而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。
页: [1]
查看完整版本: MYSQL教程之查询表主键外键信息的SQL