美文网首页
外键约束

外键约束

作者: 葡萄超好吃 | 来源:发表于2018-06-05 11:23 被阅读0次

约束:NOT NULL,PRIMARY KEY,UNIQUE KEY,DEFAULT,FOREIGN KEY

约束保证数据完整性,一致性

约束分为:表级约束,列级约束

约束类型:

NOT NULL 非空约束

PRIMARY KEY 主键约束

UNIQUE KEY 唯一约束

DEFAULT 默认约束

FOREIGN KEY 外键约束

外键约束

1 作用:数据一致性完整性,实现一对一或一对多关系

2 要求:

1)父表和子表(具有外键列的称为子表,子表参照的表为父表)必须使用相同的存储引擎,禁止使用临时表。

2)数据表的存储引擎只能是InnoDB。

3)外键列和参照列必须要有相似的数据类型,其中数字的长度或是否有符号位必须相同,字符的长度则可以不同。

4)外键列和参照列必须创建索引(参照列没有索引,MySQL自动创建索引,而外键列没有索引MySQL不会)。

3 编辑数据表默认存储引擎

MySQL配置文件,my.ini,修改默认引擎为INNODB

default-storage-engine=INNODB  

4 例子:打开test数据库,创建provinces数据表,创建user数据表,设置外键约束,当pid和provinces表中的id长度和符号位不一致,无法创建外键约束。有外键的表user表是子表,子表参照的province表是父表。pid是外键列,id是参照列。

错误,字段长度不一致

5 查看数据表引擎

show create table tbl_name

查看索引 

show indexes from provinces

6 外键约束的参照操作

创建一个user1表,参照属性为cascade province中插入数据 user1中插入 删除父表,子表也删除

7 实际中,不使用物理外键,使用逻辑外键约束

8 表级约束与列级约束

对一个数据列的约束,为列级约束 

对多个数据列的约束,为表级约束

列级约束既可以在列定义时声明,也可以在列定义以后声明。表级约束只能在列定义后声明。常用列级约束

相关文章

  • 5 MySQL 命令

    [Toc] 1 禁用外键约束 禁用外键约束:SET FOREIGN_KEY_CHECKS=0 启用外键约束:set...

  • 外键约束

    外键约束主要包含添加外键和删除外键。 1、外键约束-添加外键 create table 表名(字段名 数据类型,....

  • SQL Server 临时禁用和启用所有外键约束(迁移数据或删除

    获得禁用所有外键约束的语句 获得启用所有外键约束的语句 执行结果

  • sql 添加索引,外键约束

    索引 外键约束

  • Mysql foreign key and trigger

    外键约束与触发器 建表 主表 users 副表 user_info 外键约束 副表 user_info 添加外键约...

  • SQL中增删外键约束

    1. 删除外键约束 查询出表中外键约束 删除约束alter table 表名 drop constraint 外键...

  • 外键约束

    约束:NOT NULL,PRIMARY KEY,UNIQUE KEY,DEFAULT,FOREIGN KEY 约束...

  • 外键约束

    外键约束的本质就是增加数据的可重复利用性。也就是说假如我们有一个省份的表:P表,这个表里存储着中国34个省份名称并...

  • 外键约束

    外键的定义: 如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。 外键的作用 ...

  • 外键约束

    FOREIGN KEY(将要设置为外键的字段) REFERENCES 表名(要依赖的主键) 这里是创建一张家族表...

网友评论

      本文标题:外键约束

      本文链接:https://www.haomeiwen.com/subject/usxpsftx.html