mysql外键

1、直接在SQLyog中创建外键:

  在SQLyog中的架构设计器中拖进2张表,然后选择t_book的bookTypeId拖到另一张表t_booktype的ID位置,然后就能创建外键了。

MySQL的外键作用:保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值!

2、在命令行输入命令创建外键:

create database db_book;

use db_book;

create table t_bookType(
id int primary key auto_increment,
bookTypeName varchar(20),
bookTypeDesc varchar(200)
);

create table t_book(
id int primary key auto_increment,
bookName varchar(20),
author varchar(10),
price decimal(6,2),
bookTypeId int,
constraint `fk` foreign key (`bookTypeId`) references `t_bookType`(`id`)
);

  特别注意:fk的``符号是键盘上ESC键下面的键符号(英文状态下),不是单引号‘  ‘。

  上面的命令行可以先写在记事本当中,然后一次性复制到命令行客户端中,将可以看到该命令行一次性执行所有SQL命令的效果-这种

一次性执行多条SQL命令的方式也被称为导入SQL脚本。这样有个好处是方便修改,不如写错一个字母就得重新弄比较麻烦。

时间: 2024-11-08 20:38:44

mysql外键的相关文章

MySQL外键设置中的的 Cascade、NO ACTION、Restrict、SET NULL

MySQL外键设置中的的属性含义: cascade方式 在父表上update/delete记录时,同步update/delete掉子表的匹配记录 set null方式 在父表上update/delete记录时,将子表上匹配记录的列设为null 要注意子表的外键列不能为not null No action方式 如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作 Restrict方式 同no action, 都是立即检查外键约束 Set default方式 父表有变更

4Python全栈之路系列之MYSQL外键

Python全栈之路系列之MySQL外键 先来个例子来说明什么是外键以及外键的作用,so,XO公司现正处于一种迅速发展的状态,从最初的12人的团队发展到现在的300人,那么问题就来了,发展的越快,人员与部门就越来越多,这是老大要求我们做一个人员管理系统,用于查询入职人员的信息等. 起初我们想用一个表来实现所有的人员统计,创建Personnel库,用于存放公司员工的信息,指令如下: CREATE DATABASE personnel DEFAULT CHARSET utf8 COLLATE utf

mysql外键使用和事物使用

mysql外键功能主要是为了保证关联表数据的一致性,主要目的是控制存储在外键表中的数据. 使两张表形成关联,外键只能引用外表中的列的值! 例如: a b 两个表 a表中存有 客户号,客户名称 b表中存有 每个客户的订单 有了外键后 你只能在确信b 表中没有客户x的订单后,才可以在a表中删除客户x 建立外键的前提: 本表的列必须与外键类型相同(外键必须是外表主键). 指定主键关键字: foreign key(列名) 引用外键关键字: references <外键表名>(外键列名) 事件触发限制:

【转】MySQL外键约束On Delete、On Update各取值的含义

转载地址:http://hi.baidu.com/jxqlovejava/item/3d2cc5b5d689917c244b0920 ? 先看On Delete属性,可能取值如上图为:No Action, Cascade,Set Null, Restrict属性. 当取值为No Action或者Restrict时,则当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除. 当取值为Cascade时,则当在父表(即外键的来源表)中删除对应记录时,首先检查该记录

MySQL外键使用及说明(简单易懂)

MySQL外键使用及说明 一.外键约束 MySQL通过外键约束来保证表与表之间的数据的完整性和准确性. 外键的使用条件:  1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持): 2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立:  3.外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以: 外键的好

Mysql 外键设置

MySql外键设置详解 (1) 外键的使用: 外键的作用,主要有两个:    一个是让数据库自己通过外键来保证数据的完整性和一致性    一个就是能够增加ER图的可读性    有些人认为外键的建立会给开发时操作数据库带来很大的麻烦.因为数据库有时候会由于没有通过外键的检测而使得开发人员删除,插入操作失败.他们觉得这样很麻烦其实这正式外键在强制你保证数据的完整性和一致性.这是好事儿.    例如:    有一个基础数据表,用来记录商品的所有信息.其他表都保存商品ID.查询时需要连表来查询商品的名称

mysql外键约束总结

总结三种MySQL外键约束方式 如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表.外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松.这里以MySQL为例,总结一下3种外键约束方式的区别和联系. 这里以用户表和用户组表为例,这是一个典型的多对一关系,多个用户对应于一个用户组. 首先创建用户组表: 创建用户组表 create table t_group ( id int not n

MySQL外键的作用

MySQL外键的作用: 保持数据一致性,完整性,主要目的是控制存储在外键表中的数据.使两张表形成关联,外键只能引用外表中列的值! 我们来建两个表 CREATE TABLE `example1` ( `stu_id` int(11) NOT NULL DEFAULT '0', `course_id` int(11) NOT NULL DEFAULT '0', `grade` float DEFAULT NULL, PRIMARY KEY (`stu_id`,`course_id`) ); CREA

MySQL外键+唯一索引

MySQL外键+唯一索引 2019-08-22 1.外键 是指一个表里的列与另一张表里的列进行关系连接,可用于使用简单的数字或字母替代复杂的数据结构,不仅可以节省空间,也拥有约束功能,可减少书写出错的机会. 1.1使用方式 constraint 变量名 foreign key (列名) references 表名2(列名2): 其中变量名是自己给定的,约定不可以有重复: 列名即需要连接外键的列: 表名2值指的是外键的表: 列名2是和表中连接对应的列: 1.2实例 例如下面两个表,表1是机器状态表

mysql外键(FOREIGNKEY)介绍及使用注意事项

一.基本概念 1.MySQL中"键"和"索引"的定义相同,所以外键和主键一样也是索引的一种.不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引.用于外键关系的字段必须在所有的参照表中进行明确地索引,InnoDB不能自动地创建索引. 2.外键可以是一对一的,一个表的记录只能与另一个表的一条记录连接,或者是一对多的,一个表的记录与另一个表的多条记录连接. 3.如果需要更好的性能,并且不需要完整性检查,可以选择使用MyISAM表类型,如果