MySQL的约束问题

来源:互联网 发布:域名中.net是什么意思 编辑:程序博客网 时间:2024/05/06 06:48

约束的目的是为了保证数据的完整性和一致性。

约束的分类:
针对一个字段使用,称为列级约束;针对两个或者两个以上字段使用,称为表级约束。

按照功能划分:非空约束,主键约束,唯一约束,默认约束,外键约束。

外键约束的作用,保证数据的完整性和一致性,实现数据表一对一以及一对多的关系。(关系型数据库的由来)

创建外键约束的要求:
1,父表和子表必须有相同的存储引擎,禁止使用临时表。
子表指具有外键列的表,子表参照的表为父表
2,子表和父表的存储引擎只能是InnoDB。
3,外键列(加过foreign关键词的列)和参照列必须有相似数据类型,若是数字,则要求长度和是否有符号位必须相同,若是字符,则长度可以不同。
4,外键列和参照列必须创建索引。外键列没有索引MySQL自动创建索引。

外键约束的参照操作
1,CASCADE 从父表删除或者更新且自动删除或更新子表中匹配的行
2 , SET NULL 从父表删除或者更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL。
3 , RESTRICT 拒绝对父表的删除或更新操作
4 , NO ACTION 标准的SQL关键字在MYSQL中与RESTRICT相同

表级约束和列级约束
一个数据列建立的约束称为列级约束。
多个数据列建立的约束称为表级约束。

列级约束和表级约束的区别:
列级约束可以在列定义时声明也可以在列定义后声明。
表级约束只能在列定义后声明。

0 0
原创粉丝点击