四月二十四号日报

今日学习内容

PostgreSQL的高级特性

1.1视图:我们可以在该查询上创建一个视图,这会给该查询一个名字,我们可以像使用一个普通表一样来使用它。如下

create view myview as
    select city,temp_lo,temo_hi,date,location
        from weather,cities
        where city=name
select *from myview;

1.2外键:简而言之就是起约束作用,①插入非空值时,如果主键中没有这个值,则不能插入②更新时,不能改变主键表中没有的值。举个栗子

create table cities(
    city varchar(80) primary key,
    location point
);

create table weather(
    city varchar(80) references cities(city),
    temp_lo int,
    temp_hi int,
    prcp real,
    date date
);
insert into weather values ('Berkeley', 45, 53, 0.0, '1994-11-28');

这里会出现违反外键约束的报错,因为在cities表中不存在Berkeley的主键

1.3事务:事务是所有数据库系统的基础概念。事务最重要的一点是它将多个步骤捆绑成了一个单一
的、要么全完成要么全不完成的操作。步骤之间的中间状态对于其他并发事务是不可见的,并且如果有某些错误发生导致事务不能完成,则其中任何一个步骤都不会对数据库造成影响。

在PostgreSQL中,开启一个事务需要将SQL命令用begincommit命令包围起来:

begin
--sq语句
commit;

如果在事务执行中我们并不想提交(比如转账时余额不足),我们可以发出rollback命令而不是commit命令,这样所有目前的更新将会被取消。

也可以利用保存点来以更细的粒度来控制一个事务中的语句。保存点允许我们有选择性地放
弃事务的一部分而提交剩下的部分。在使用SAVEPOINT定义一个保存点后,我们可以在必
要时利用ROLLBACK TO回滚到该保存点。该事务中位于保存点和回滚点之间的数据库修改
都会被放弃,但是早于该保存点的修改则会被保存。

比如我们从Alice的账户扣款100美元,然后存款到Bob的账户,结果直到最后才发现我们应该存到Wally的账户。我们可以通过使用保存点来做这件事:

begin;
--SQL语句
savepoint my_savepoint
--SQL语句
--发现转账错误,应该是转给Wally
rollback to my_savepoint
--SQL语句
commit;

对墙的知识点进行复习准备考核

原文地址:https://www.cnblogs.com/swtczb/p/11632614.html

时间: 2024-10-10 09:41:11

四月二十四号日报的相关文章

四月二十五号日报

今日学习内容 Go语言的控制结构 1.1if-else结构:关键字if和else之后左大括号{必须和关键字在同一行,如果你使用了 else-if 结构,则前段代码块的右大括号 } 必须和 else-if 关键字在同一行.这两条规则都是被编译器强制规定的. if condition { //代码 } else if condition{ //代码 }else{ //代码 } if可以包含一个初始化语句(比如给一个变量赋值)这种写法具有固定的格式(在初始化语句后必须加上分号),但要注意的是,使用简短

四月二十九号日报

今日学习内容 Go语言的数组与切片 1声明和初始化:数组是具有相同 唯一类型 的一组已编号且长度固定的数据项序列 Go 语言中的数组是一种 值类型,所以可以通过 new() 来创建: var arr1 = new([5]int),这种方式和 var arr2 [5]int 的区别是arr1 的类型是 *[5]int,而 arr2的类型是 [5]int. package main import "fmt" func f(a [3]int) { a[1] = 2 fmt.Println(a

马哥学习笔记二十四——分布式复制快设备drbd

DRBD: 主从 primary: 可执行读.写操作 secondary: 文件系统不能挂载 DRBD: dual primay, 双主(基于集群文件系统的高可用集群) 磁盘调度器:合并读请求,合并写请求: Procotol:drbd数据同步协议 A: Async, 异步  数据发送到本机tcp/ip协议栈 B:semi sync, 半同步  数据发送到对方tcp/ip协议 C:sync, 同步  数据到达对方存储设备 DRBD Source: DRBD资源 资源名称:可以是除了空白字符外的任意

二十四孝,图文并茂,古今必读!

知道“二十四孝”的人,已经不多了:知道“二十四孝”的年轻人,更是少之又少.“孝”在今日社会,似乎已是一个“过气”的词,人老珠黄般,逗不起众人的欲望了.我们读<二十四孝>,感觉那似乎是十分遥远的故事.其实细细想来,它好像又近在咫尺,离我们并不远. 01 孝感动天 舜,传说中的远古帝王,五帝之一,姓姚,名重华,号有虞氏,史称虞舜.相传他的父亲瞽叟及继母.异母弟象,多次想害死他:让舜修补谷仓仓顶时,从谷仓下纵火,舜手持两个斗笠跳下逃脱:让舜掘井时,瞽叟与象却下土填井,舜掘地道逃脱.事后舜毫不嫉恨,仍

3360: [Usaco2004 Jan]算二十四

3360: [Usaco2004 Jan]算二十四 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 6  Solved: 6[Submit][Status][Discuss] Description 写一个程序,给出D(2≤D≤10)个数字,按原顺序在数字间加+,一,×算出24,且不使用括 号.优先级按正常的优先级处理,即先做乘法后做加减法.输出有多少种不同的方案数. Input 第1行:一个整数D. 第2到D+1行:D个整数,在1到50之间. O

二十四、管道符和作业控制、shell变量、环境变量配置文件

二十四.管道符和作业控制.shell变量.环境变量配置文件一.管道符和作业控制管道符:| 表示把前面文件输出的内容传递给后面的命令.|grep:过滤,指定关键词的命令.|grep 'aaa'.作业控制Ctrl+z:暂停一个任务.等于把当前任务放在了后台,使用fg命令再调回任务里.fg:前台,foreground.bg:后台,将任务调到后台去运行.示例: vim /etc/passwd [1]+ 已停止 vim /etc/passwd可以停止多个任务,被暂停的任务会有编号.想调回哪个就fg 1或者

从零开始学android&lt;android事件的处理方式.二十四.&gt;

在android中一共有 多种事件,每种事件都有自己相对应的处理机制 如以下几种 1 单击事件 View.OnClickListener public abstract void onClick (View v) 单击组件时触发 2 单击事件 View.OnLongClickListener public abstract boolean onLongClick (View v) 长按组件时触发 3 键盘事件 View.OnKeyListener public abstract boolean

实验二十四:SD卡模块

  驱动SD卡是件容易让人抓狂的事情,驱动SD卡好比SDRAM执行页读写,SD卡虽然不及SDRAM的麻烦要求(时序参数),但是驱动过程却有猥琐操作.除此此外,描述语言只要稍微比较一下C语言,描述语言一定会泪流满面,因为嵌套循环,嵌套判断,或者嵌套函数等都是它的痛.. 史莱姆模块是多模块建模的通病,意指结构能力非常脆弱的模块,暴力的嵌套行为往往会击垮模块的美丽身躯,好让脆弱结构更加脆弱还有惨不忍睹,最终搞垮模块的表达能力.描述语言预想驾驭SD卡,关键的地方就是如何提升模块的结构能力.简单而言,描述

攻城狮在路上(叁)Linux(二十四)--- linux设置开机挂载及镜像文件挂载

虽然可以手动进行文件系统的挂载,但是每次都手动挂载就会很麻烦,开机挂载的目的就是实现文件系统的自动挂载. 一.开机挂载:/etc/fstab及/etc/mtab 主要是通过修改/etc/fstab文件的配置来实现. fstab是开机时的设置,实际文件系统的挂载是记录到/etc/mtab和/proc/mounts这两个文件中. 1.系统挂载的限制: A.根目录/必须挂载,而且一定是最先挂载的,要先于其他mount point. B.其他挂载点必须为已新建的目录,可以任意指定. C.所有挂载点在同一