GBASE南大通用数据库的对象模式和违反检测

2023-12-22 17:20

本文主要是介绍GBASE南大通用数据库的对象模式和违反检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GBASE南大通用数据库的对象模式和违反检测可帮助您监视数据完整性。在模式更改期间,或当对于短期 内大批量数据执行插入、删除和更新操作时组合这些特性,这些特性特别有效。

在对象模式特性的讨论的上下文之内,数据库对象是约束、索引和触发器,且它们中的每 一个都有不同的模式。请不要将与对象模式特性相关的数据库对象与一般的数据库对象相 混淆。一般的数据库对象是诸如表和同义词之类的对象。

GBASE南大通用数据库对象模式的定义 

您可为约束或唯一索引设置禁用、启用或过滤模式。您可为触发器或重复索引设置启用或 禁用模式。您可使用数据库对象模式来控制 INSERT、DELETE 和 UPDATE 语句的效果。 

GBASE南大通用数据库启用模式

在缺省情况下,约束、索引和触发器是启用的。 当数据库对象是启用的时,数据库服务器识别该数据库对象的存在,并在它执行 INSERT、 DELETE 或 UPDATE 语句时考虑该数据库对象。因此,当触发器事件发生时,强制执行 启用的约束,更新启用的索引,并执行启用的触发器。

当您启用约束和唯一索引时,如果存在违反的行,则该数据处理语句失败(即,不更改行) 且数据库服务器返回错误消息。 当您分析违反表和诊断表中的信息时,您可标识该失败的原因。然后,您可采取更正活动 或回滚该操作。 

GBASE南大通用数据库禁用模式

当数据库对象是禁用的时,在执行 INSERT、DELETE 或 UPDATE 语句时,数据库服务 器不考虑它。当触发器事件发生时,不强制执行禁用的约束,不更新禁用的索引,也不执 行禁用的触发器。当您禁用约束和唯一索引时,违反该约束或唯一索引的限制的任何数据 操纵语句都成功,(即,更改目标行),且数据库服务器不返回错误消息。 

  GBASE南大通用数据库过滤模式 

  当约束或唯一索引处于过滤模式时,该语句成功,且在 INSERT、DELETE 或 UPDATE 语 句期间,通过将失败了的行写到与该目标表相关联的违反表,数据库服务器强制满足约束 或唯一索引需求。将关于该约束违反的诊断信息写到与目标表相关联的诊断表。 

  GBASE南大通用数据库 使用数据操纵语句的模式的示例 

  一个使用 INSERT 语句的示例可说明启用模式、禁用模式与过滤模式之间的差异。请考虑 这样一条 INSERT 语句,其中一个用户试图在表上添加不满足完整性约束的一行。例如, 假设用户 joe 创建了名为 cust_subset 的表,且此表由下列列构成:ssn(客户的社会保险编 号)、fname(客户的名)、lname(客户的姓)以及 city(客户生活的城市)。ssn 列具有 INT 数据类型。其他三列有 CHAR 数据类型。

假设用户 joe 定义了 lname 列为非空,但尚未将名称指定给非空约束,于是,数据库服务器 已隐式地将名称 n104_7 指定给此约束。最后,假设用户 joe 在 ssn 列上创建了名 为 unq_ssn 的唯一索引。

现在,对 cust_subset 有 Insert 权限的用户 linda 在此表上输入下列 INSERT 语句:

  INSERT INTO cust_subset (ssn, fname, city)

 VALUES (973824499, "jane", "los altos");

  要更好地理解启用模式、禁用模式与过滤模式之间的区别,您可在下面三个部分中查看前 面的 INSERT 语句的结果。 

  当约束为启用的时,插入操作的结果 

  如果在 cust_subset 表上的 NOT NULL 约束是启用的,则 INSERT 语句不能在此表中插入 新行。而当用户 linda 输入该 INSERT 语句时,她收到下列错误消息: -292 An implied insert column lname does not accept NULLs. 

这篇关于GBASE南大通用数据库的对象模式和违反检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/524809

相关文章

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

数据库面试必备之MySQL中的乐观锁与悲观锁

《数据库面试必备之MySQL中的乐观锁与悲观锁》:本文主要介绍数据库面试必备之MySQL中乐观锁与悲观锁的相关资料,乐观锁适用于读多写少的场景,通过版本号检查避免冲突,而悲观锁适用于写多读少且对数... 目录一、引言二、乐观锁(一)原理(二)应用场景(三)示例代码三、悲观锁(一)原理(二)应用场景(三)示例

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的