完整性约束(Integrity Constraint)用来确保数据遵从业务规则的要求,防止数据表中出现不满足规则的非法数据。本文主要介绍如何使用完整性约束以防止数据库的表中被插入非法数据。
OceanBase 数据库 MySQL 模式下的租户可以使用完整性约束以防止用户向数据库的表中插入非法数据。完整性约束的作用是确保数据库内存储的信息遵从一定的业务规则,如果 DML 语句的执行结果违反了完整性约束,将回滚语句并返回错误消息。
例如,用户在 employees 表的 salary 列上定义了完整性约束。此完整性约束规定 salary 列的数字值大于 10000 的数据行不能插入到 salary 表。如果某个 INSERT 或 UPDATE 语句违反了此完整性约束,将回滚语句并返回错误消息。
OceanBase 数据库中使用宏块来存储数据,每张表可能包含多个宏块,每个宏块占用 2M 空间。宏块内包含一个或者多个微块,每个微块内包含一行或者多行数据。
表的组织形式
OceanBase 数据库中使用聚集索引表模型来组织,也就是存储时按照表的主键顺序来存储数据。当往表中插入一行数据时,会按照其主键的顺序插入到表中。
每行存储的列顺序是一样的。OceanBase 数据库通常是按照建表时的列顺序来存储,新加的列都放在最后一列存储。
行存储
行存储在微块中,一般情况下,行的所有列都是存储在一起的。当表中有大对象类型时,其所占用的存储空间会超过宏块大小,此时会将大对象类型溢出存储到其他的宏块中。
空值存储
OceanBase 数据库中会存储空值,在存储中会使用一个字节来标记某列是否为空。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




