Kingbase备份与还原及表的约束(Kylin)

备份与还原

  • 逻辑备份是对整个数据库好数据库中的部分对象利用逻辑备份工具导出数据到备份文件
  • 在需要数据恢复的情况下利用逻辑还原工具把备份文件恢复到数据库中

使用场景

  1. 逻辑备份主要用于数据库逻辑错误的恢复,恢复后对其他数据没有太大影响
  2. 逻辑备份可用于在大型数据库中执行部分静态对象的备份
  3. 逻辑备份可用于跨平台数据恢复
  4. 逻辑备份在生产中是对物理备份的有效补充

备份单表或多表

# 使用system用户将test数据库中的schema01模式下t开头的表备份至/back/dump/table.dmp
sys_dump -U system -d test -f /backup/dump/table.dmp -Fc -t schema01.t*
# -U 备份使用的用户
# -d 备份的数据库
# -f 保存路径
# -Fc 输出文件为定制
# -t 备份的数据表

备份模式

# 使用system用户将test数据库中的schema模式备份至/back/dump/schema.dmp
sys_dump -U system -d test -f /back/dump/schema.dmp -Fc -n schema01
# -U 备份使用的用户
# -d 备份的数据库
# -f 保存路径
# -Fc 输出文件为定制
# -n 备份的模式

备份数据库

# 使用system用户将test数据库备份至/back/dump/dbidr目录下,添加插入语句,使用双并发备份
sys_dump -U system -d test -f /back/dump/dbdir -Fd --inserts -j 2
# /back/dump下的/dbdir目录不能存在,系统会自动创建
# -U 备份使用的用户
# -d 备份的数据库
# -f 保存的路径
# -Fd 输出文件为文件夹
# --inserts 以inserts语句备份而不是默认的copy语句

备份数据到COPY格式的SQL脚本

# 使用system用户将test数据库下的schema01模式中的t01表备份至/back/dump/copy.sql
sys_dump -U system -d test -f /back/dump/copy.sql -Fp -t schema01.t01
# -U 备份使用的用户
# -d 备份的数据库
# -f 保存的路径
# -Fp 输出文件为明文
# -t 保存的数据表

备份数据到INSERT格式的SQL脚本

# 使用system用户将test数据库下的schema01模式中的t01表备份至/back/dump/inserts.sql
sys_dump -U system -d test -f /back/dump/inserts.sql -Fp -t schema01.t01 --inserts
# -U 备份使用的用户
# -d 备份使用的数据库
# -f 保存的路径
# -Fp 数据文件为明文
# --inserts 使用inserts语句备份

只备份对象定义 不包含表数据

# 使用system用户将test数据库下的对象信息备份至/back/dump、ddl.sql
sys_dump -U system -d test -f /back/dump/ddl.sql -Fp -s
# -U 备份使用的用户
# -d 备份的数据库
# -s 只存储模式,不包含数据
# -f 保存的路径
# -Fp 数据文件为明文

从DUMP格式的备份中还原表

sys_restore -U system -d test /back/dump/table.dmp -Fc -t t0

表的约束

数据完整性约束是指为了防止不符合规范的数据进入数据库,在录入数据或数据发生变化时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,是数据库中存储的数据正确、有效、相容。

表的三类完整性约束约束可以在列或者在表级定义,单列约束可以定义在列级或表级,多列约束必须定义在表级

  • 实体完整性
  • 参照完整性
  • 用户定义完整性

实体完整性

实体完整性定义

  1. 关系数据库中每个元组应该是可区分的,是唯一的,这样的约束条件用实体完整性来保证。
  2. 实体完整性约束对应的属性被称为表的主键(primary key)或称为关系的主码
  3. 实体完整性约束可以定义在表中的一列或多列中

实体完整性规则

  1. 实体完整性规则是针对基本表而言的,一个基本表通常对应于现实世界的一个实体集
  2. 主键对应的列值在表中不能重复且不能为空
  3. 每个表最多只能拥有一个主键

创建表时添加主键约束

# 列级定义主键
CREATE TABLE student(name varchar(10),CONSTRAINT RULE_NAME PRIMARY KEY(name)  # 设置主键约束:约束名为RULE_NAME,约束列为name
);# 表级定义主键
CREATE TABLE sutent (name varchar(10),PRIMARY KEY(name));

修改表增加主键约束

ALTER TABLE student ADD CONSTRAINT pk_student_name PRIMARY KEY(name);
# 修改student表增加约束,约束名为pk_student_nmae,主键字段为name

在这里插入图片描述

参照完整性约束

参照完整性定义

  1. 现实世界中的实体主键往往存在某种关系、关系和关系之间存在相互引用。
  2. 一个表的属性需要依赖另一个表的属性,这样的约束条件使用参照完整性来保证。
  3. 参照完整性约束对应的属性被称为表的外键(foreign key),或称为关系的外码。
  4. 参照完整性约束课定义在表中的一列或多列上。

参照完整性规则

  1. 被参照的相应列上必须被定义为主键约束或唯一键约束
  2. 表的外键列可以取空值
  3. 表的外键非空时,只能取被参照表中已经存在的值
CREATE TABLE student(name varchar(10),CONSTRAINT RULE_NAME FOREIGN KEY(name) REFERENCES student1 (name) # 设置外键约束:约束名为RULE_NAME,约束列为name,参照对象为student1的name列
);

修改表添加外键约束

ALTER TABLE student ADD CONSTRAINT fk_student1_name FOREIGN KEY (name) REFERENCES student1(name);

在这里插入图片描述

用户定义的完整性约束

非空约束非空约束保证一个表中某列不能取空值

CREATE TABLE t1 (name varchar(10) NOT NULL);
# 限制name字段不能为空

唯一约束唯一约束保证一个表的某列或多列的值在表中所有元组间是不能重复的,但可以为空

CREATE TABLE t1 (name varchar(10) UNIQUE);
# 限制字段name不可为空

check约束限制一个特定列中的值必须要满足一个条件表达式

CREATE TABLE t1 (name varchar(10),score numeric CHECK(score>0));
# 限制字段score必须大于0

约束的状态控制

enable/disable对新进入数据的约束检查

validate/novalidate对现有数据的约束检查
在这里插入图片描述

约束控制方法

  1. enable + validate

    新插入的数据与表中现有数据均需符合约束条件,默认状态

  2. enable + novalidate

    对表中现有数据和新插入的数据都不执行完整性约束检查

  3. disable + validate

    对现有的数据执行完整性约束检查,不允许对表执行DML操作

  4. disable + novalidate

    对现有数据不执行完整性约束检查,对新插入的数据会执行检查

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/163981.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nmap端口服务 之 CentOS7 关于启动Apache(httpd)服务、telnet服务、smtp服务、ftp服务、sftp服务

Nmap端口服务 之 CentOS7 关于启动Apache(httpd)服务、telnet服务、smtp服务、ftp服务、sftp服务 一. CentOS7 安装配置SFTP服务器详解一、SFTP简介二、关闭防火墙三、安装SSH服务在CentOS7中,sftp只是ssh的一部分,所以采用yum来安装ssh服务即可1. 查看是否已经安装了ssh2.…

数据挖掘(6)聚类分析

一、什么是聚类分析 1.1概述 无指导的,数据集中类别未知类的特征: 类不是事先给定的,而是根据数据的相似性、距离划分的聚类的数目和结构都没有事先假定。挖掘有价值的客户: 找到客户的黄金客户ATM的安装位置 1.2区别 二、距离和相似系数 …

Linux实用指令-指定运行级别、帮助指令

一、 指定运行级别 1.运行级别说明: 0:关机 1:单用户[找回丢失密码] 2:多用户状态没有网络服务 3:多用户状态有网络服务 4:系统未使用保留给用户 5:图形界面 6:系统重启 常用运行级别是3和5,要修改默认的运行级别。可改文件/etc/inittab 的id:5:initd…

Spring学习笔记(2)

Spring学习笔记(2) 一、Spring配置非定义Bean1.1 DruidDataSource1.2、Connection1.3、Date1.4、SqlSessionFactory 二、Bean实例化的基本流程2.1 BeanDefinition2.2 单例池和流程总结 三、Spring的bean工厂后处理器3.1 bean工厂后处理器入门3.2、注册Be…

Dreambooth工作原理

什么是Dreambooth 中文名:梦想亭。 Dreambooth 由 Google 研究团队于 2022 年发布,是一种通过向模型注入自定义主题来微调扩散模型(如稳定扩散)的技术。 所谓自定义主体,就是一张照片,但是照片主体要鲜明…

idea启动vue项目:Error:0308010C:digital envelope routines::unsupported

此问题是因为Node.js的版本原因,此处安装的Node.js是最新长期维护版: 18.16.0 (includes npm 9.5.1) 有两种解决办法: #1、方法一 重新安装低版本的node.js#2、方法二 在package.json文件中进行配置【此种方法较简单】介绍一下第二种方法: …

win32汇编-使用子程序

当程序中相同功能的一段代码用得比较频繁时,可以将它分离出来写成一个子程序,在主程序中用call指令来调用它。这样可以不用重复写相同的代码, 仅仅用call指令就可以完成多次同样的工作了。Win 32汇编中的子程序也采用堆栈来传递参数&#xff…

Python学习-----Day09

一、利用装饰器来获取函数运行的时间、 #导入time模块 import timedef decorated(fn):def inner():#time.time获取函数执行的时间a time.time() # func开始的时间fn()b time.time() # func结束的时间print(f"{fn.__name__}程序运行的总数时间:{b - a}秒")return…

Win系统VMware虚拟机安装配置(二)

系统的安装得分两个步骤,第一步得配置一台电脑,选配 cpu,内存,磁盘,网卡等硬 件。第二步才是安装系统。 一、配置电脑 1、 进入 VMware 双击 VMware 图标,看到如下界面。 2、 自定义新的虚拟机 3、…

地铁大数据客流分析系统 设计与实现 计算机竞赛

文章目录 1 前言1.1 实现目的 2 数据集2.2 数据集概况2.3 数据字段 3 实现效果3.1 地铁数据整体概况3.2 平均指标3.3 地铁2018年9月开通运营的线路3.4 客流量相关统计3.4.1 线路客流量排行3.4.2 站点客流量排行3.4.3 入站客流排行3.4.4 整体客流随时间变化趋势3.4.5 不同线路客…

SNAP对Sentinel-1预处理

SNAP对Sentinel-1预处理 一、导入数据 二、轨道校正 点击run开始处理 三、噪声去除 打开S-1 Thermal Noise Removal工具 如果选中了VH,就只会输出一个VH极化结果 四、辐射定标 Run 五、滤波处理 六、地形校正 这边的dem需要自己下载 dem下载地址 如果一格…

跨境电子商城源代码定制网站搭建(商品采集,多货币,多语言)

欢迎来到全新的跨境电子商城源代码定制网站搭建!这是一个集商品采集、多币种和多语言于一身的创新平台,为您的跨境电商事业提供了前所未有的便利和机会! 一、精选全球商品,一站式采集 在跨境电子商务的时代,我们深谙选择高质量商品的重要性。…

Python 框架学习 Django篇 (三) 链接数据库

只要你是做后端开发的,那么就离不开各种数据库,Django框架对各种数据库都非常友好,比如常见的PostgreSQL、MySQL、SQLite、Oracle,django都对他们提供了统一调用api,我们这里主要使用mysql数据库作为演示 一、ORM机制 …

【开源分享】基于Html开发的房贷计算器,模仿新浪财经

房贷计算器是一种房贷计算的在线计算Web应用,按用户选择的贷款类型、贷款金额、期限、利率可计算得出每月月供参考、支付利息、还款总额这些信息。本文模仿新浪财经开发的房贷计算器。 作品预览 https://fangdai.gitapp.cn 源码地址 https://github.com/geeeeeee…

5、使用 pgAdmin4 图形化创建和管理 PostgreSQL 数据库

通过上几篇文章我们讲解了如何安装 PostgreSQL 数据库软件和 pgAdmin4 图形化管理工具。 今天我们继续学习如何通过 pgAdmin4 管理工具图形化创建和管理 PostgreSQL 数据库。 一、PostgreSQL的基本工作方式 在学习如何使用PostgreSQL创建数据库之前,我们需要了解一…

vue3+element-plus 封装高度搜索组件,支持多种类型

目录 一、应用场景 二、开发流程 三、详细开发流程 1.新建文件 2.开始步骤 3.详细代码 (1).index.vue (2).搜索组件 (3).单个搜索组件 总结 一、应用场景 一般很多网站,有很多数据列表,基本都要做搜索的功能,如果涉及很多页面&…

【CMN】Components组件汇总

CMN 700由各种类型的设备组成,包括路由器模块、CHI节点和网桥。所需要的组件取决于系统的需求,有些组件是可选的,或者只有在满足某些需求时才会使用。CMN 700可以集成到一个完整的SoC系统中,该系统还包括其他这里未描述到的设备。…

金融机器学习方法:K-均值算法

目录 1.算法介绍 2.算法原理 3.python实现示例 1.算法介绍 K均值聚类算法是机器学习和数据分析中常用的无监督学习方法之一,主要用于数据的分类。它的目标是将数据划分为几个独特的、互不重叠的子集或“集群”,以使得同一集群内的数据点彼此相似&…

Leetcode刷题详解——四数之和

1. 题目链接:四数之和 2. 题目描述: 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应&#xff0…

stm32 cubeide 闪退 显示self upgrade failed

更新或安装新版cubeide时,可能会出现打开后一段时间直接闪退,显示如下图。此时怎么折腾cubeide都是没用的。应该去升级stm32 cubemx。记得打开cubemx时选择用管理员身份打开,升级完成后重新开打。然后尝试打开cubdeide,如果继续报…