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.mzph.cn/news/117193.shtml

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

相关文章

vue重修之路由【下】

文章目录 版权声明路由重定向、404,路由模式重定向404路由模式 声明式导航vue-routerrouter-link-active 和 router-link-exact-active定制router-link-active 和 router-link-exact-active跳转传参两种跳转传参总结 编程式导航两种语法路由传参path路径跳转传参nam…

python3 修行之基础篇(一)python 简介

文章目录 python的发展史Python的特点查看 Python 版本简单Python3.x程序应用 python的发展史 Python 的发展历史可以追溯到上世纪80年代末期。以下是Python的一些重要的语言简介。 1989年: Guido van Rossum 在圣诞节期间开始设计 Python。1991年: Gu…

c++ 并发与多线程(12)线程安全的单例模式-2

一、内部静态变量的懒汉单例(C++11 线程安全) #include <iostream> #include <thread> #include <vector>class Single { public:// 获取单实例对象static Single& GetInstance();// 打印实例地址void Print();private:// 私有构造函数,防止外部创建对…

RHCE---搭建博客网站

一.实验要求&#xff1a; Server-NFS-DNS主机配置NFS服务器&#xff0c;将博客网站资源文件共享给Server-web主机&#xff0c;Server-NFS-DNS主机配置DNS Server-web主机配置web服务&#xff0c;通过域名www.openlab.com可以访问到自建的博客网站 二.准备工作 创建两台虚拟机…

python之客户端和服务端的例子

python之客户端和服务端的例子 1&#xff09;TCP服务器端 以下是一个简单的Python TCP服务器端的示例代码&#xff1a; import socket # 创建TCP套接字并绑定到本地地址和端口 server_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind((lo…

C++11:智能指针(二)实战篇(附上实例)

目录 1、unique_ptr&#xff1a; 2、shared_ptr&#xff1a; 3、weak_ptr&#xff1a; 4、如何处理循环引用问题&#xff1f; C智能指针是一种用于管理动态分配的对象的指针&#xff0c;它可以自动释放所指向的对象&#xff0c;避免内存泄漏和悬空指针的问题。 C标准库提供…

Redis的优势

高性能 Redis是一种基于内存的数据存储系统&#xff0c;读写性能非常高&#xff0c;因此适用于对性能要求较高的应用场景。 数据结构丰富 Redis支持多种数据结构&#xff0c;如字符串、列表、集合、散列、有序集合等&#xff0c;可以满足不同的业务需求。还有一些特殊数据结…

Linux流量监控

yum install -y iptrafiptraf-ng -d ens33

关于近期IP-Guard新版本客户端重复发送邮件的问题处理说明

关于近期新版本客户端重复发送邮件的问题处理说明 一、问题描述 近期部分客户反馈,升级到新版本的客户端(4.81.341.0、4.82.621.0及以上),使用SMTP协议发送邮件时,会出现重复发送邮件的情况,主要表现为以下两种现象: Outlook发送包含大量收件人的邮件时,收件人邮箱可能…

11 结构型模式- 代理模式

结构性模式一共包括七种&#xff1a; 代理模式、桥接模式、装饰者模式、适配器模式、门面(外观)模式、组合模式、和享元模式。 1 代理模式介绍 软件开发中的代理&#xff1a; 代理模式中引入了一个新的代理对象,代理对象在客户端对象和目标对象之间起到了中介的作用,它去掉客…

LSTM 与 GRU

RNN无法处理长距离依赖问题&#xff0c;通俗点就是不能处理一些较长的序列数据&#xff0c;那么今天就来介绍一下两个能处理长距离依赖问题地RNN变种结构&#xff0c;LSTM和GRU。 1. LSTM&#xff08;Long short-term memory&#xff09; 1.1 LSTM结构 上左图是普通RNN结构图…

Windows下Eclipse C/C++开发环境配置教程

1.下载安装Eclipse 官网下载eclipse-installer&#xff08;eclipse下载器&#xff09;&#xff0c;或者官方下载对应版本zip。 本文示例&#xff1a; Eclipse IDE for C/C Developers Eclipse Packages | The Eclipse Foundation - home to a global community, the Eclipse ID…

#Day Day Plan# 《NCB_PCI_Express_Base 5.0.1.0》pdf 译文笔记

目录 前言碎语 第4章 Physical Layer Logic Block S4.1 Introduction S4.2 Logical sub-block S4.2.4 Link Initialization and Traning S4.2.4.3 Electrical Idle Sequence(EIOS) 译文&#xff1a;EIOS 电器空闲Ordered Set S4.2.7 Link Training and Status State R…

C语言-面试题实现有序序列合并

要求&#xff1a; a.输入两个升序排列的序列&#xff0c;将两个序列合并为一个有序序列并输出。 数据范围&#xff1a; 1≤n,m≤1000 1≤n,m≤1000 &#xff0c; 序列中的值满足 0≤val≤30000 输入描述&#xff1a; 1.输入包含三行&#xff0c; 2.第一行包含两个正整数n, m&am…

【强连通+背包】CF1763E

Problem - E - Codeforces 题意 思路 首先&#xff0c;先考虑第一个条件&#xff0c;要保证是p个节点互相到达且节点数最少&#xff0c;一定是个强连通&#xff0c;图的形态一定就是和强连通相关的。 然后&#xff0c;因为在这个前提上&#xff0c;要让单向节点数尽可能多&a…

【密评】商用密码应用安全性评估从业人员考核题库(十一)

商用密码应用安全性评估从业人员考核题库&#xff08;十一&#xff09; 国密局给的参考题库5000道只是基础题&#xff0c;后续更新完5000还会继续更其他高质量题库&#xff0c;持续学习&#xff0c;共同进步。 2501 多项选择题 GM/T 0047《安全电子签章密码检测规范》规定的电…

shell 中单引号,双引号,反引号的区别

1 单引号 str1hello echo $str1 打印结果是&#xff1a;$str1 总结&#xff1a; 单引号里的任何字符都会原样输出&#xff0c;单引号字符串中的变量是无效的&#xff0c;所以不能使用单引号 来解析变量。不过单引号可以引用变量。 例如&#xff1a; str1hello echo $str…

IMU预积分的过程详解

一、IMU和相机数据融合保证位姿的有效性&#xff1a; 当运动过快时&#xff0c;相机会出现运动模糊&#xff0c;或者两帧之间重叠区域太少以至于无法进行特征匹配&#xff0c;所以纯视觉SLAM对快速的运动很敏感。而有了IMU&#xff0c;即使在相机数据无效的那段时间内&#xff…

iOS UIWebView与WKWebView 那些事

一、前言介绍 UIWebView 是 iOS 2 中推出的网页容器,UIWebView是最占内存的控件;直到 iOS 8 以后,苹果推出了 WebKit 框架,其中 WKWebView 正式被推出来接替 UIWebView 的位置;iOS 12 中,苹果正式弃用 UIWebView,要求开发者用 WKWebView 全面替换 UIWebView,apple 官方…

C++ -- 位运算与常用库函数(ACWING语法基础)

位运算 & 与 | 或 ~ 非 ^ 异或 >> 右移 << 左移 常用操作&#xff1a; 求x的第k位数字 x >> k & 1lowbit(x) x & -x&#xff0c;返回x的最后一位1 常用库函数、 reverse 翻转 翻转一个vector&#xff1a; reverse(a.begin(), a.end(…