ORACLE禁用和启用外键】的更多相关文章

禁用外键 select 'alter table '|| t.table_name||' disable constraint '||t.constraint_name||';' from user_constraints t where t.constraint_type = 'R' order by t.table_name 启用外键 select 'alter table '|| t.table_name ||' enable constraint '||t.constraint_name…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ---启用or禁用指定表所有外键约束  alter table PUB_STRU  NOCHECK constraint all;  alter table PUB_STRU  CHECK constraint all;      ---生成启用or禁用指定表外键约束的sql  select 'ALTER TABLE ' + b.name + ' NOCHECK CONSTRAINT ' + a.name +';…
Oracle查找表的外键引用关系 select t1.table_name, t2.table_name as "TABLE_NAME(R)", t1.constraint_name, t1.r_constraint_name as "CONSTRAINT_NAME(R)", a1.column_name, a2.column_name as "COLUMN_NAME(R)" from user_constraints t1, user_cons…
试验环境: 1)数据库版本:oracle 11.2.0.4 2)建表脚本:以scott的dept及emp表为基础. 父表:dept -- Create table create table DEPT ( DEPTNO NUMBER(2) not null, DNAME VARCHAR2(14), LOC VARCHAR2(13) ) -- Create/Recreate primary, unique and foreign key constraints alter table DEPT ad…
一.首先让我们来了解下什么是主外键? 1.主键:唯一标识数据表中的某一行 1) 一个表中只能有一个主键.如果在其他字段上建立主键,则原来的主键就会取消.在ACCESS中,虽然主键不是必需的,但最好为每个表都设置一个主键. 2)主键的值不可重复,也不可为空(NULL).主关键字是可选的,并且可在 CREATE TABLE 或 ALTER TABLE 语句中定义. 3)主键的创建:在建置新表格时设定主键的方式 MySQL:  CREATE TABLE Customer (SID integer,La…
1.问题背景 尽管在数据库操作中我们并不提倡改动主键,可是确实在实际生活中有这种业务需求: 表A有主键KA,表B中声明了一个references A(KA)的外键约束.我们须要改动A中某条目KA的值而且更新B中外键约束. 可是DBMS在运行了第一条update后检查完整性会发现冲突:B中条目的外键不存在. 注:我在Oracle database环境下遇到这个问题的.Oracle非常蛋疼的不能设置外键为update级连.所以仅仅有人工处理. 2.举例说明 用一个简单的样例说明.数据库中有下面三个表…
本文转自:http://hi.baidu.com/wangzhiqing999/item/ca699308de4f1ff9a1103429 今天百度知道上面,看到这样一个要求: 现在有一个库,有很多张表 想要删除一张表的记录的时候,由于外键关联太多, 所以,没法删除相应的记录, 谁能帮忙写个存储过程,就是先删除所有表的主,外键, 然后进行删除表记录,然后再恢复之前所有的主外键. 一眼看上去,需要批量删除所有外键,并不困难. 但是要求批量所有外键之后, 一切处理完毕后,还要把外键重建回来. 这个有…
转自:https://blog.csdn.net/weixin_39183543/article/details/80555104 1. 外键名最后保存的时候自动生成: 2. 参考模式自动生成: 3.参考表即外键表. 选中参考表,参考限制自动提示: 4.参考栏位为外键表的关联字段: 4.栏位为当前表的关联字段: 启用. 5.删除时:下拉列表定义采取行动的类型. No Action:默认无动作.参考键值将不会更新或删除. CASCADE:级联-,分别删除任何参考已删除的行,或更新参考列为被参考的新…
1.有时为了导入数据方便,需要临时关闭外键约束mysql>SET FOREIGN_KEY_CHECKS=0; 2.打开外键约束mysql>SET FOREIGN_KEY_CHECKS=1; 3.查看FOREIGN_KEY_CHECKS变量mysql>select @@FOREIGN_KEY_CHECKS; =-=-=-=-=Powered by Blogilo…
添加主键约束: ALTER TABLE GA_AIRLINE ADD CONSTRAINT PK_AIRLINE_ID PRIMARY KEY(AIRLINE_ID); 有三种形式的外键约束: 1.普通外键约束(如果存在子表引用父表主键,则无法删除父表记录) 2.级联外键约束(可删除存在引用的父表记录,而且同时把所有有引用的子表记录也删除) 3.置空外键约束(可删除存在引用的父表记录,同时将子表中引用该父表主键的外键字段自动设为NULL,但该字段应允许空值) 这三种外键约束的建立语法如下: 例如…
打开帖子直接一张醒目的图,是阿里巴巴的Java开发手册对Mysql相关的要求. 看看下面的回复 灵剑 存储过程没有版本控制,版本迭代的时候要更新很麻烦.存储过程如果和外部程序结合起来用,更新的时候很难无感升级,可能需要停服.存储过程不利于将来分库分表.存储过程的功能不一定够强大,业务扩展之后可能会发现无法继续用存储过程实现了.存储过程可能无法和许多中间件.ORM库一起使用.某些特殊的兼容MySQL的实现可能根本就不支持存储过程,那就更不用说了.这也不绝对,在微软的时候就有项目是反过来的,所有业务…
选择主键的原则: 最少性 尽量选择使用单个键作为主键 稳定性 尽量选择数值更新少的列作为主键 1.创建数据表(CREATE TABLE) --创建数据表Student create table Student( SID number(2) constraint PK_SID primary key,--指定该列为主键列,并指定主键名为PK_SID SName varchar2(16) not null ) --创建数据表Class create table Class( CID number(2…
1.ORACLE数据库中的外键约束名都在表user_constraints中可以查到.其中constraint_type='R'表示是外键约束.2.启用外键约束的命令为:alter table table_name enable constraint constraint_name 3.禁用外键约束的命令为:alter table table_name disable constraint constraint_name4.然后再用SQL查出数据库中所以外键的约束名:select 'alter…
本文讨论一下Oracle中的外键约束问题,以及和DB2中的小不同. 首先创建测试环境. -- 创建测试主表. ID 是主键. CREATE TABLE test_main ( id INT, value ), PRIMARY KEY(id) ); -- 创建测试子表. CREATE TABLE test_sub ( id INT, main_id INT, value ), PRIMARY KEY(id) ); -- 插入测试主表数据. INSERT INTO test_main(id, val…
转: MySQL删除所有表的外键约束.禁用外键约束 2017年10月27日 00:11:34 李阿飞 阅读数:4512   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/junlovejava/article/details/78360253  数据库的外键虽然能保证数据数据一致性和完整性,但是也一定程度地影响了数据更新的性能.在开发中,我们使用PowerDesigner建立物理数据模型时,为了结构的清晰,增加可读性,会创建表与表之间的关联关系…
其实如果想删除所有表可以直接如下操作: 在navicat中直接选中所有表,然后右键删除表即可,会有提示,一路确定,就会先删掉没有外键的表和字表,只要一路确定,删几批就把表都删完了,并不算太麻烦. 转: MySQL删除所有表的外键约束.禁用外键约束 2017年10月27日 00:11:34 李阿飞 阅读数:4271   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/junlovejava/article/details/78360253  数据库…
在oracle中,如果外键未加索引,对父表的修改,会导致子表被加上全表锁.这包括两种情况: 1.删除父表中的行,如果外键上没有索引,会导致子表被加上全表锁 2.更新父表的主键(根据关系数据库的原则,更新主键是一个巨大的"禁忌",所以一般不会出现这种情况),如果外键上没有索引,会导致子表被加上全表锁 虽然,在Oracle9i及以上的版本中,这些全表锁都是短期的,他们仅在DML操作期间存在,而不是在整个事务的期间都存在.但是即使如此,这些全表锁还是可能(而且确实会)导致很严重的锁定问题.…
Oracle外键(Foreign Key)使用详细的说明(一) 1.目标 演示如何Oracle使用外键数据库 2.什么是外键? 1)在Oracle数据库中,外键是用来实现參照完整性的方法之中的一个.打个形象的比喻.外键是指定义外键的表的列的值必须在还有一个表中出现. 2)被參照的表称之为父表(parent table),创建外键的表称之为子表(child table).子表中的外键关联了父表中的主键. 3)外键能够在创建表时定义或者通过ALTER TABLE语句创建. 3.创建表时定义外键 语法…
http://www.cnblogs.com/cici-new/archive/2013/01/01/2841700.html 需要如下操作 先取消子表外键的外键约束,之后删除父表数据,最后再次启用外键约束.…
Oracle数据库中,外键约束只允许级联删除,不允许级联更新,因此,如果想要实现主表数据更新后,子表外键自动更新,只能取消外键关系,通过前端程序来维护实现完整引用,一个代替的解决方案是使用延迟约束和触发器: 1:建立延迟外键约束: Alter table slavetable add constraint FK_ST_FID references primarytable (PID) on delete cascade deferrable; 2:建立触发器: create or replace…
在SQL Server中,表之间存在引用关系,引用关系通过创建外键约束(Foreign Key Constraint)实现.如果一个Table中的column被其他Table引用,那么该表是参考表,或引用表(Referenced Table),该Column是其他表的外键列,也叫参考列,引用列(Referenced Column),对引用列执行Update 或 Delete 操作会受到很多限制.在对引用列进行Update 和 Delete之前,必须禁用外键约束. 1,查看FK的信息,使用 sys…
在用jpa这种orm框架时,有时我们实体对象存在关联关系,但实际的业务场景可能不需要用jpa来控制数据库创建数据表之间的关联约束,这时我们就需要消除掉数据库表与表之间的外键关联.但jpa在处理建立外键时存在一些问题,在stackoverflow上搜索了相关的jpa创建实体对象关联关系但不建立外键这一系列问题后,发现这个是jpa在处理外键时存在一定的bug,官方给出的答复是在hibernate 5.x会解决掉这个问题,但是经验证5.x的版本这个问题依旧存在.下面给出这个问题的解释以及这个问题如何解…
--批量删除用户表 --1.删除外键约束DECLARE c1 cursor for     select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; '    from sysobjects     where xtype = 'F'open c1declare @c1 varchar(8000)fetch next from c1 into @c1while(@@fetch_status=0…
学习作业3: 问题1:你觉得外键有哪些适用情况?哪些不适用情况?   问题2:本次实战案例,由你来架构,你觉得有必要建立外键吗? 说明你的理由?     ===================================== ===================================== 知识点: 1.建立外键的写法 让我们通过一个例子来解释外键.请看下面两个表: "Persons" 表: Id_P LastName FirstName Address City 1 A…
SQL Server 批量 停用/启用 外键约束 今天百度知道上面,看到这样一个要求: 现在有一个库,有很多张表想要删除一张表的记录的时候,由于外键关联太多,所以,没法删除相应的记录,谁能帮忙写个存储过程,就是先删除所有表的主,外键,然后进行删除表记录,然后再恢复之前所有的主外键. 一眼看上去,需要批量删除所有外键,并不困难.但是要求批量所有外键之后,一切处理完毕后,还要把外键重建回来.这个有点复杂了. 心想,如果删除之后,还要重建的.那还不如一开始就不删除,只是暂时 “不可用”.等一系列的操作…
Qt 学习之路 2(58):编辑数据库外键(skip) 豆子 2013年7月12日 Qt 学习之路 2 13条评论 前面几章我们介绍了如何对数据库进行操作以及如何使用图形界面展示数据库数据.本章我们将介绍如何对数据库的数据进行编辑. 当然,我们可以选择直接使用 SQL 语句进行更新,这一点同前面所说的 model/view 的编辑没有什么区别.除此之外,Qt 还为图形界面提供了更方便的展示并编辑的功能. 普通数据的编辑很简单,这里不再赘述.不过,我们通常会遇到多个表之间存在关联的情况.首先我们要…
先禁用数据库的外键约束: set foreign_key_checks=0; 进行删除操作 delete.drop.truncate 恢复数据库外键约束: set foreign_key_checks=1;…
在之前的MySQL运维中,要求禁用触发器/存储过程/外键等一些数据库常见功能,因此对MySQL外键也相对比较陌生,今天特地探究下. 现有表TB001和TB002各包含6291456行数据,创建脚本如下: CREATE TABLE `tb001` ( `ID` ) NOT NULL AUTO_INCREMENT, `C1` ) DEFAULT NULL, PRIMARY KEY (`ID`) ) ENGINE DEFAULT CHARSET=utf8; CREATE TABLE `tb002` (…
oracle 删除外键约束 禁用约束 启用约束 执行以下sql生成的语句即可 删除所有外键约束 Sql代码  select 'alter table '||table_name||' drop constraint '||constraint_name||';' from user_constraints where constraint_type='R' 禁用所有外键约束 Sql代码  select 'alter table '||table_name||' disable constrain…
1.查询所有表的外键的: select table_name, constraint_name from user_constraints where constraint_type = 'R';   2.禁用所有外键约束, 使用下面的sql生成对应sql脚本: select 'alter table ' || table_name || ' disable constraint ' || constraint_name || ';' from user_constraints where co…