PowerDesigner 参照完整性约束:

限制(Restrict):不允许进行修改或删除操作。若修改或删除主表的主键时,如果子表中存在子记录,系统将产生一个错误提示。这是缺省的参照完整性设置。

置空(Set Null):如果外键列允许为空,若修改或删除主表的主键时,把子表中参照的外键列设置为空值(NULL)。

置为缺省(Set Default):如果指定了缺省值,若修改或删除主表的主键时,把子表中参照的外键设置为缺省值(Default)。

级联(Cascade):把主表中主键修改为一个新的值时,相应修改子表中外键的值;或者删除主表中主键的记录时,要相应删除子表中外键的记录。

外键级联删除的时候,操作主表时会关联到子表,但是操作子表,不会关联到主表。

以下是几个参数的含义:

None:父表修改,子表不影响。

Restrict:父表修改,如果子表存在,则出错。

Cascade:父表修改,如果子表存在,则相应的修改。

Set Null:父表修改,如果子表存在,则相应置空。

Set Default:父表修改,如果子表存在,则相应置默认值。

另外:

功能:在删除主表时,自动删除副表(外键约束)相应内容

删除包含主键值的行的操作,该值由其它表的现有行中的外键列引用。在级联删除中,还删除其外键值引用删除的主键值的所有行。

如:

create database temp go use temp go

create table UserInfo ( UserId int identity(1,1) primary key , UserName varchar(20), --用户名 
password varchar(20) not null --密码 ) create table UserDetails ( id int identity(1,1) primary key, name varchar(50) not null, --真实姓名
userId int, foreign key (userId) references UserInfo(UserId) on delete cascade ) insert UserInfo values ('ly','jeff') insert UserInfo values('wzq','wzqwzq') insert UserInfo values('lg','lglg') insert UserDetails values('李四',1) insert UserDetails values('王五',2) insert UserDetails values('刘六',3)

sqlserver 支持级联更新和删除

oracle 只支持级联删除

alter table 表名

add constraint 外键名

foreign key(字段名)

references 主表名(字段名)

on delete cascade

语法: Foreign Key (column[,...n]) references referenced_table_name[(ref_column[,...n])] [on delete cascade] [on update cascade]

注释:

column:列名

referenced_table_name:外键参考的主键表名称

ref_name:外键要参考的表的主键列

on delete:删除级联

on update:更新级联

 

此时:Delete From UserInfo Where UserId = 1 就可删除UserInfo表和UserDetails表的UserId=1 的内容

转载来源:https://www.cnblogs.com/zhtxl/p/3197104.html

PowerDesigner 参照完整性约束(转载)的更多相关文章

  1. easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)

    easyui datagrid 禁止选中行   没有找到可以直接禁止的属性,但是找到两个间接禁止的方式. 方式一: //onClickRow: function (rowIndex, rowData) ...

  2. 关于mysql设置外键,实现参照性完整性约束,以及workbench上的一个bug(?)

    一.本次数据库中有student,course,sc表,其设置情况 -- 创建course表 CREATE TABLE `course` ( `cno` ) NOT NULL, `cname` ) D ...

  3. PowerDesigner之PDM(物理概念模型)各种属性建立如PK,AK等

    一.PDM概述 PDM(物理数据模型),通俗地理解,就是在PowerDesigner中以图形化的方式展示和设计数据库. PDM中涉及到的基本概念包括: 表: 列: 视图: 主键: 候选键: 外键: 存 ...

  4. PowerDesigner教程系列

    文章转载至:http://www.cnblogs.com/yxonline/archive/2007/04/09/705479.html PowerDesigner教程系列(一)概念数据模型 目标:本 ...

  5. PowerDesigner之PDM(物理概念模型)

    一.PDM概述 PDM(物理数据模型),通俗地理解,就是在PowerDesigner中以图形化的方式展示和设计数据库. PDM中涉及到的基本概念包括: 表: 列: 视图: 主键: 候选键: 外键: 存 ...

  6. PowerDesigner(六)-物理数据模型(PDM逆向工程)(转)

    物理数据模型PDM 物理数据模型(Physical Data Model,PDM):在数据库的逻辑结构设计好之后,就需要完成其物理设计,PDM就是为实现这一目的而设计的. 物理数据模型是以常用的DBM ...

  7. MYSQL外键约束的参照操作

    如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表.外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常 ...

  8. 使用powerdesigner 画图的详细说明

    一.概念数据模型概述 数据模型是现实世界中数据特征的抽象.数据模型应该满足三个方面的要求: 1)能够比较真实地模拟现实世界 2)容易为人所理解 3)便于计算机实现 概念数据模型也称信息模型,它以实体- ...

  9. PowerDesigner 物理数据模型(PDM)

    PowerDesigner 物理数据模型(PDM) 说明 数据库脚本sqldatabasegeneration存储   目录(?)[+]   一.     PDM 介绍 物理数据模型(Physical ...

随机推荐

  1. mui 页面提示:Unable to preventDefault inside passive

    页面提示: 点击该事件:页面提示:[8mui.min.js:7 [Intervention] Unable to preventDefault inside passive event listene ...

  2. C++探究transform算法

    transform函数原型 1. template<class _InIt, class _OutIt, class _Fn1> inline _OutIt transform(_InIt ...

  3. 第四章 javascript的语句、对象笔记摘要

    表达式语句 greeting ="Hello"+name;//赋值语句 i*=3; count++; delete o.x; //删除 alert(greeting); //函数 ...

  4. 获取post请求数据工具类

    package com.ccidit.features.otherFunctions.util; import java.io.BufferedReader; import java.io.IOExc ...

  5. itext实现合同尾部签章部分自动添加,定位签名

    使用的pom <!-- pdf处理 start--> <dependency> <groupId>com.itextpdf</groupId> < ...

  6. Spring Boot 集成 Mybatis 实现双数据源

    这里用到了Spring Boot + Mybatis + DynamicDataSource配置动态双数据源,可以动态切换数据源实现数据库的读写分离. 添加依赖 加入Mybatis启动器,这里添加了D ...

  7. ASP.NET Web API实现微信公众平台开发(二)access_token与定时任务

    承接上一篇,今天主要讲述如何实现定时获取微信access_token功能的实现. access_token 首先我们根据微信的开发指南,任何对微信的操作都要使用合法获取的access_token,微信 ...

  8. Liferay7 BPM门户开发之23: 了解内置工作流(Kaleo Workflow)

    Liferay内置的工作流是企业版的功能,虽然简单粗糙,但依然不支持社区版.既然要用更强大的Activiti来替代它,那就非常有必要学习一下内置工作流的一些思想,以便借鉴. 它的特点: 实体的工作流操 ...

  9. VS Code:让你工作效率翻倍的23个插件和23个编辑技巧

    VS Code:让你工作效率翻倍的23个插件和23个编辑技巧 总结了一些平时常用且好用的 VS Code 的插件和编辑技巧分享出来. 文章详情可查阅我的博客:lishaoy.net ,欢迎大家访问. ...

  10. Ubantu常用命令

    Ubantu常用命令 ctrl alt t   :打开终端 ctrl d : 关闭终端 F11   : 终端全屏,再按一次退出全屏 Super(即win)                        ...