精华内容
下载资源
问答
  • MySql外键

    2019-12-08 13:56:04
    mysql外键的初步认识,如何创建外键

    外键

    MySql外键必须使用存储引擎为innodb
    因程序很难100%保证数据的完整性,而外键在数据库服务器当机或者出现其他的问题时,能够最大限度的保证数据的一致性和完整性。
    设置外键约束的两个表之间会具有父子关系,即子表中外键的字段的取值范围由父表所决定
    设置外键一定程度上降低数据库的速度
    子表的外键字段的数据类型和父表要一致
    一个健壮数据库中的数据一定有很好的参照完整性。例如,学生表和成绩单两张表,如果成绩单中有张三的成绩,学生表中张三的档案被删除了,这样就会产生垃圾数据或错误数据。为了保证数据的完整性,将两张表之间的数据建立关系,因此就绪在表中添加外键约束。

    成绩表表

    create table grades(
    id int(4) not null primary key,
    gid decimal(4,1)
    );
    学生表

    create table student(
    sid int(4) not null primary key auto_increment,
    sname varchar(36),
    cid int(4) not null
    );
    往里面加点数据

    –加入学生信息iron man,cid为1
    insert into student values(0,‘iron man’,1);

    –向grades 表中加入分数120.0
    insert into grades (id,grade) values (1,120);
    添加外键

    –alter table 表名 add constraint 外键名字 foreign key(外键字段名) references 外表表名(主键字段名)
    alter table student add constraint fk_cid foreign key(cid) references grades(id);
    这时候如果我再向student表中插入id,比如2,该id不存在于grades中,就会插入失败。同时,如果将grades表中id=1修改为id=2或者其他,也会失败。

    insert into student values(0,‘shell’,2);
    删除外键

    –alter table 表名 drop foreign key 外键名;
    alter table student drop foreign key fk_cid;
    总结

    一个表可以有多个外键
    对子表(外键所在的表)的作用:子表在进行写操作的时候,如果外键字段在父表中找不到对应的匹配,操作就会失败
    对父表的作用:对父表的主键字段进行删或改时,如果对应的主键在字表中被应用,操作会失败。
    外键的定制作用----三种约束模式:

    district:严格模式(默认), 父表不能删除或更新一个被子表引用的记录。

    cascade:级联模式, 父表操作后,子表关联的数据也跟着一起操作。

    set null:置空模式,前提外键字段允许为NLL, 父表操作后,子表对应的字段被置空。

    展开全文
  • mysql外键

    2019-03-19 23:00:00
    参考文章1 Mysql外键使用详解 参考文章2 mysql外键理解 转载于:https://www.cnblogs.com/zhang-anan/p/10562126.html

    参考文章1 Mysql外键使用详解
    参考文章2 mysql外键理解

    转载于:https://www.cnblogs.com/zhang-anan/p/10562126.html

    展开全文
  • MySQL外键

    2019-10-08 03:11:14
    mysql 外键外键约束)外键:为了保证数据的完整性 一致性,实现多张表之间的统一操作--创建主表 create table users( id int(4) auto_increment primary key, name varchar(20), age int(3) )engine=innodb ;...

     mysql 外键(外键约束)

    外键:为了保证数据的完整性  一致性,实现多张表之间的统一操作 
    --创建主表
    create table users(
    id int(4) auto_increment primary key,
    name varchar(20),
    age int(3)
    )engine=innodb ;

    foreign key  外键名称 (字段)  对表的来源
    foreign key uid (id) references users(id);  

    -- 创建级联表 

    create table orders(
    order_id int (4) auto_increment primary key,
    id int(4),
    name varchar(20),
    money  int(4)
    )engine=innodb;
    cascade 级联
    on delete cascade  --级联删除 
    on update cascade --级联修改 
    alter table orders  add foreign key(id) references users(id) on delete cascade;
    为orders 表 的 id 添加了 外键 对应的是 users id  ,级联删除
    alter table orders  add foreign key(id) references users(id) on update cascade;
    修改uses 表中id  ,orders表中id 对应的也将被修改

    转载于:https://www.cnblogs.com/havoe/p/4355298.html

    展开全文
  • MySQL 外键

    2011-05-15 10:25:11
    MySQL 外键 外键的作用: 保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值! 例如: a b 两个表 a表中存有 客户号,客户名称 b表中存有 每个...

    MySQL 外键

    外键的作用:

    保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值!
    例如:
    a b 两个表
    a表中存有 客户号,客户名称
    b表中存有 每个客户的订单
    有了外键后
    你只能在确信b 表中没有客户x的订单后,才可以在a表中删除客户x

    建立外键的前提: 本表的列必须与外键类型相同(外键必须是外表主键)。

    指定主键关键字: foreign key(列名)

    引用外键关键字: references <外键表名>(外键列名)

    事件触发限制: on delete和on update , 可设参数cascade(跟随外键改动), restrict(限制外表中的外键改动),set Null(设空值),set Default(设默认值),[默认]no action

    例如:

    outTable表 主键 id 类型 int

    创建含有外键的表:
    create table temp(
    id int,
    name char(20),
    foreign key(id) references outTable(id) on delete cascade on update cascade);

    说明:把id列 设为外键 参照外表outTable的id列 当外键的值删除 本表中对应的列筛除 当外键的值改变 本表中对应的列值改变。

    展开全文
  • mysql 外键

    2018-12-03 19:04:00
    一、是什么  从表的某列指向主表的某列,从表的这一列就是从表的外键。  外键不一定要指向主表的主键,但必须是唯一性索引。... 2、外键约束也能防止非法数据插入外键列,因为它必须是它指向的主表的列...
  • Mysql外键

    2018-02-05 11:09:25
    外键技术点: (1)只有InnoDB类型的表才可以使用外键。MyISAM类型不支持外键约束; (2)外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作; (3)外键的作用: 保持数据一致性,完整性,...
  • MYSQL外键

    2017-10-10 16:05:07
    请注意 : 1、外键约束只能在innodb引擎下使用。 2、外键应该在建立子表的时候建立。 3、外键所建立的字段,...下面我们先来创建一张主表mysql> create table grades( -> id tinyint not null auto_increment pr
  • mysql 外键

    2009-05-12 17:28:00
    详细说明请看lyjtynet@sina.com邮箱里的mysql 外键 phpmyadmin目前还不支持设置外键,那么在设置外键的时候可以使用命令行:ALTER TABLE 表名 ADD FOREIGN KEY (字段名) REFERENCES 表名(字段名) ON UPDATE ...
  • MySQL外键详解

    2011-10-21 13:38:10
    MySQL外键详解MySQL外键详解MySQL外键详解MySQL外键详解MySQL外键详解

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,972
精华内容 5,988
关键字:

mysql外键

mysql 订阅