使用Navicat for MySQL添加外键约束

转载:http://blog.csdn.net/u013215018/article/details/54981216

现在有两个表一张是Roles表(角色表),一张是RoleUser表(用户角色)

现在我想把RoleUser表中的RoleID属性设置为外键,关联Roles表中的RoleID属性。

操作步骤:

第一步:

第二步:

一共有七列。简单介绍一下这几列的意思:

“名”:  可以不填,你一会保存成功系统会自动生成。

“栏位”:就是你要把哪个键设置为外键。这里选择‘RoleID’

“参考数据库”: 外键关联的数据库。

“引用表”: 关联的表 这里是Roles表

“外栏位名”:关联的的字段,这里是RoleID

“删除时":就是删除的时候选择的动作。这里我的选择是setNull,意思就是当关联的表删除以后,RoleUser->RoleID字段会设置为null。

“ 更新时”:就是更新的时候选择的动作。这里我的选择是CASCADE,意思就是当关联的表更新以后,RoleUser->RoleID字段会设置为级联更新。

原文地址:https://www.cnblogs.com/chechen/p/8308701.html

时间: 2024-11-06 03:43:36

使用Navicat for MySQL添加外键约束的相关文章

Mysql添加外键约束

简单说一下使用外键的好处 1.完整性约束 比如:用户表中有字段 用户编号(id) , 名称(username)设备表中有字段 设备编号(id) , 设备名称(devicename) 设备属于的用户编号(user_id) 把设备表中的用户编号设置成外键,引用用户表的主键. 当向设备表中输入数据时,如果输入用户编号在用户表中找不到对应的话,就会报错,从而能保证这个设备必定会属于一个存在的用户. 2.可以实现级联删除 还引用上面的例子,当一个用户不在使用该系统时,需要将用户和他的设备从数据库删除,如果

MySQL的外键约束:Cascade/Restrict/No action/SET NULL

转自:http://blog.csdn.net/cnjsnt_s/article/details/5548280 具体使用时需要参考:http://blog.csdn.net/codeforme/article/details/5539454 (注:没看很明白,囧.) MySQL有两种常用的引擎类型:MyISAM和InnoDB.目前只有InnoDB引擎类型支持外键约束.InnoDB中外键约束定义的语法如下: [CONSTRAINT [symbol]] FOREIGN KEY [index_nam

MySQL 建立外键约束

http://www.jzxue.com/shujuku/mysql/201109/06-8742.html MySQL 建立外键约束的语法太晦涩难懂了, 不得不记下笔记. 1. 在建表时建立外键 CREATE TABLE table_s ( `id` int(11) NOT NULL AUTO_INCREMENT, `column_name_from` int(11) NOT NULL, `name` varchar(256) NOT NULL, PRIMARY KEY (`id`), IND

MYSQL 添加外键报错

2014年6月16日 10:48:51 出错的部分提示摘录: #1452 - Cannot add or update a child row: a foreign key constraint fails result 2 when explaining filename '#sql-3d5_204369' 解决办法: pma 中同时执行两条语句: set foreign_key_checks = 0; ALTER TABLE `table_name` ADD CONSTRAINT `fk_n

mysql的外键约束

创建表格: #首先登录mysql mysql -uroot 打开一个数据库 mysql>use db1; 创建一个父表,我们命名为province, mysql> create table province ( -> id smallint auto_increment key, -> name varchar(10) NOT NULL -> ); 创建一个子表,命名为student,其中其pid引用来自province的id, mysql> create table

补12.关于mysql的外键约束

一.什么是mysql中的外键(froeign key) 假如说有两张表,其中一张表的某个字段指向了另一张表的主键,这就可以称之为外键(froeign key). 在子表中增加一条记录时,需要确定是否有与父表相对应的记录. 如果父表没有对应的记录,那么子表(从表)无法插入这条数据. 下面是一个关于外键的示例: 1.首先创建一个主表,这个主表存放了班级信息. create table class ( id TINYINT PRIMARY KEY auto_increment, class_name

详解MySQL的外键约束

创建表格 首先登录mysql,如 mysql -uroot -ppassword 打开一个数据库,如 mysql>use db1; 创建一个父表,我们命名为province,如 mysql> create table province (     -> id smallint auto_increment key,     -> name varchar(10) NOT NULL     -> ); 创建一个子表,命名为student,其中其pid引用来自province的i

MySQL添加外键Foreign Keys出错,报错[HY000][3780]

今天写开发文档的时候需要做一下数据结构相关的内容,于是就想着一个快捷一点儿的操作,直接在DataGrip里面调用视图,然后将视图打印为PDF,这样就可以直接截图获取到图片了.由于开发的过程中也没有怎么注重外键的建立,因为本来就是一个小小的比赛,所以生成视图的时候外键联系的箭头都没有,真的是自闭了,如果这个直接给评委看,评委估计会气哭...所以我打算花点时间加一些外键上去,心里想着也花不了多少时间,谁知道,这下子还遇到一些哲学问题! 首先看下,本来数据库表视图是这样的,我只是想多增加一些外键约束,

Oracle表中添加外键约束

添加主键约束: ALTER TABLE GA_AIRLINE ADD CONSTRAINT PK_AIRLINE_ID PRIMARY KEY(AIRLINE_ID); 有三种形式的外键约束: 1.普通外键约束(如果存在子表引用父表主键,则无法删除父表记录) 2.级联外键约束(可删除存在引用的父表记录,而且同时把所有有引用的子表记录也删除) 3.置空外键约束(可删除存在引用的父表记录,同时将子表中引用该父表主键的外键字段自动设为NULL,但该字段应允许空值) 这三种外键约束的建立语法如下: 例如