美文网首页
外键约束

外键约束

作者: 葡萄超好吃 | 来源:发表于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 表级约束与列级约束

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

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

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

    相关文章

      网友评论

          本文标题:外键约束

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