seo站长综合查询工具,韩都衣舍网站建设策划书,家在龙岗,公司做网站还是做阿里好呢其实查找这篇文章 我主要用的sql 是这句 select * from user_cons_columns t where t.constraint_name like FK_CTS_CONT_REINS__CRR;起因#xff1a;系统测试的时候发现如果某条记录已经被引用了#xff0c;这个时候删除这条记录会引起数据不一致#xff0c;系统会报错。…其实查找这篇文章 我主要用的sql 是这句 select * from user_cons_columns t where t.constraint_name like FK_CTS_CONT_REINS__CRR;起因系统测试的时候发现如果某条记录已经被引用了这个时候删除这条记录会引起数据不一致系统会报错。比如警员信息在考勤记录表里会引用警员ID,如果考勤记录表中已经存在这个警员ID了这时从警员表中删除该警员就会引起数据不一致前台报错。所以这个时候我就想查找数据库中所有引用这个ID的表一约束类型简介约束用于确保数据库数据满足特定的商业逻辑或者企业规则如果定义了约束并且数据不符合约束那么DML操作(INSERT、UPDATE、DELETE)将不能成功执行。约束包括NOT NULL、UNIQUE、PRIMARY KEY、FOREING KEY 以及CHECK等五种类型NOT NULL约束NOT NULL 约束强制列不接受 NULL 值。UNIQUE约束UNIQUE 约束唯一标识数据库表中的每条记录。PRIMARY KEY 约束PRIMARY KEY 约束唯一标识数据库表中的每条记录。主键必须包含唯一的值。每个表应该都一个主键并且每个表只能有一个主键。主键列不能包含 NULL 值。FOREING KEY约束外部键列的数据必须在主表的主键列(或惟一列)中存在或者为NULL,CHECK约束CHECK 约束用于限制列中的值的范围。如果对单个列定义 CHECK 约束那么该列只允许特定的值。如果对一个表定义 CHECK 约束那么此约束会在特定的列中对值进行限制。二Oracle数据字典中查看约束信息1、我们创建的对象可以从USER_开通的视图中查看。如果在模式中创建了10张表那么从USER_TABLES中查询将返回10行每一行是关于一张表的特性信息USER_TABLES不能查看非当前用户模式下创建的表。ALL_TABLES视图不但显示当前用户模式下创建的表而且显示授权能够访问的表信息我们关心的视图以下列前缀命名·USER_ 当前用户模式下创建的对象·ALL_ 当前用户模式下创建的对象加上当前用户能访问的其他用户创建的对象。ALL视图常常包含一个OWNER列反映出能够访问的对象的所有者。在USER_TABLES表中不能看到OWNER列是因为你就是在这个视图中所有表的所有者在ALL_TABLES中有一个OWNER字段。·DBA_ 它提供了整个数据库的信息。包括数据库中所有表的名字和拥有者——包括SYS模式下的基本表这些前缀在限制我们想看到的、需要看到的、应当被允许看到的范围上是一个帮助。查看当前模式下创建的表查询USER_TABLES;查看所有我们创建的表以及被授权可以从其他用户模式下访问的表查询ALL_TABLES;具有DBA或SELECT_CATALOG_ROLE角色的用户可以查询DBA_TABLES来查询数据库中所有表的列表;不是所有视图下都有一个USER、ALL、和DBA前缀有一些视图仅存在于dba视图范围。比如DBA_DATA_FILES。在开发环境中有时会访问DBA视图允许开发人员探究Oracle数据字典是没有害处的。你可以在不拥有DBA角色的情况下获得这个权限。一般把CONNECT和RESOURCE角色给应用开发者他不能访问这些你可以把SELECT ANY TABLE权限或SELECT_CATALOG角色赋给一个用户这样他将被允许访问整个数据字典。一个人对数据字典理解的越多越能接触到数据库中复杂的操作越能对SQL语句优化敏感。2、数据字典视图概要在数据字典视图中有一些隐含的关系。发现这些关系常常是使用SQL查询对数据字典验证的结果幸运的是在数据字典中有许多使用名称的特征。例如USER_TABLES表中每一个表包含一个单独的行。每一行包含一张表的详细信息比如表的物理存储参数。这些数据提供的扩展信息告诉你表是怎么增长的。USER_TAB_COLUMNS视图中在USER_TABLES表中的每一张表的每一行包含一条记录。如果一张表有10个字段那么你将在USER_TAB_COLUMNS表中找到10行记录是关于每一字段的详细信息。比如字段数据类型。字段名TABLE_NAME在USER_TABLE 和USER_TAB_COLUMNS表中都有因此可以很容易的把他们连接起来。USER_OBJECTS 用户对象视图ALL_OBJECTS 所有对象视图DBA_OBJECTS DBA对象视图USER_SEQUENCES 用户序列对象视图在USER_SEQUENCES的记录也会出现在USER_OBJECTS表中3、约束视图有两个数据字典视图提供了约束的详细信息。USER_CONSTRAINTS和USER_CONS_COLUMNS.一张表可能有也可能没有约束对于一张表的每一个约束在USER_CONSTRAINTS中都有一条记录描述这个约束。包括约束应用到的表名称。如果你知道约束名想知道约束类型查询USER_CONSTRAINTS表。这个视图描述了约束的定义。它不提供约束定义在哪些字段名称上。USER_CONSTRAINTS中CONSTRAINT_NAME中表示约束名如果建立表的时候没有指定约束名系统默认的约束名类似“SYS_C006274”这样的一串字母。R_CONSTRAINT_NAME是外键引用表主键的约束名。CONSTRAINT_TYPE字段中P:表示主键R:表示外键C表示NOT NULL或CHECKU表示UNIQUE在USER_CONS_COLUMNS视图中显示约束的字段名称。如果主键是个联合主键这个视图中将有这个约束的两条记录。联合主键的每一个字段对应一条记录。每一条记录通过POSITION(在联合主键中的位置)来区别。可以根据CONSTRAINT_NAME字段将USER_CONSTRAINTS和USER_CONS_COLUMNS关联起来。三得到想要的结果分为两步//查询表的主键约束名select * from user_constraints e where e.table_name’’—-处输入表名//查询所有引用到该主键的记录select b.table_name,b.column_name from user_constraints ainner join user_cons_columns bon a.constraint_name b.constraint_namewhere a.r_constraint_name—此处输入刚才查询出来的表主键的约束名