postgresql事务

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px ".PingFang SC"; color: #dca10d }
p.p2 { margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px ".PingFang SC" }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC" }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue" }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; min-height: 14.0px }
li.li3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC" }
li.li4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue" }
li.li6 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Menlo }
span.s1 { font: 17.0px "Helvetica Neue" }
span.s2 { font: 17.0px ".PingFang SC" }
span.s3 { font: 12.0px ".PingFang SC" }
span.s4 { font: 12.0px "Helvetica Neue" }
span.s5 { font: 10.0px Menlo }
ol.ol1 { list-style-type: decimal }
ul.ul1 { list-style-type: disc }

pgsql事务与并发控制

事务与并发控制

数据库几大特性:

ACID:

Atomicity:原子性:一个事务要么全部执行,要么全部不执行

Consistency :一致性:执行事务的时候,数据库从一个一致的状态变更到另一个状态

Isolation:隔离性: 确保在并发执行的时候,每个事务感觉不到其他事务在并发的执行

Durability:持久性:一个事务完成之后,即使数据库发生故障,他对数据库的改变应该永久的保存在数据库中。

并发引起的现象

  • 脏读:一个事务读取了第二个事务的已经修改但是未提交的数据
  • 不可重复读:一个事务第一次读取数据之后,被读取的数据被另一个已提交的事务进行了修改,事务再次读取这些数据时候发现数据已经被另外一个事务所修改,两次查询不一致
  • 幻读:一个事务的两次结果集记录数不一致(特殊的不可重复读)
  1. 查看数据库的隔离级别操作
  • 查看全局事务级别

    select name,setting from pg_settings where name = ‘default_transaction_isolation‘

  • 修改全局事务隔离级别

    alter system set default_transaction_islation to ‘REPEATABLE READ‘;select pg_reload_conf();select current_setting(‘transaction_isolation‘);

  • 查看当前会话的事务隔离级别

    show transaction_isolcation;

  • 设置当前事务的事务隔离级别

    start transaction isolation level READ UNCOMMITED;

  • start TRANSACTION    select xxxx
  • END

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; min-height: 14.0px }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC" }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue" }
span.s1 { font: 12.0px "Helvetica Neue" }
span.s2 { font: 12.0px ".PingFang SC" }

事物是如何开始的?

1、每条SQL语句就是一个事物。「自动提交模式」

2、直到用户执行commit或rollback为止作一个事务。

2.1、事务开始 sql server 、Postgresql 是下面方式:

Begin transaction ;

Update student set name=‘teddy’ where id=3 ;

Update student set age=‘13’ where id=3 ;

Commit ;———>提交处理

2.2、事务开始 mysql 是下面方式:start  transaction ;

start transaction ;

Update student set name=‘teddy’ where id=3 ;

Update student set age=‘13’ where id=3 ;

Commit ;———>提交处理

事务回滚例子:

begin transaction ;

Update student set name=‘teddy’ where id=3 ;

Update student set age=‘13’ where id=3 ;

rollback ;———>取消处理

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; min-height: 14.0px }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue" }
span.s1 { font: 12.0px ".PingFang SC" }

创建表:create table student ( student_id integer , name varchar(12),sex varchar(12),age integer);

插入数据:insert into student values(1,‘teddy‘,‘man‘,25),(2,’Tony’,’man‘,27)(3,’lida’,’man‘,25);

更新数据:Update student set name=‘teddy’ where id=3 ;

查询:select*from student;

删除数据: delete from student where student_id=1;  —————>  只删除数据,表还存在。

删除表:drop table student;——————————————>表和数据都删除了。

原文地址:https://www.cnblogs.com/1314520xh/p/10236675.html

时间: 2024-10-11 11:04:12

postgresql事务的相关文章

postgresql事务的操作二

参照网页: http://www.php100.com/manual/PostgreSQL8/sql-set-transaction.html show transaction isolation level ; 查看事务隔离级别 testdb=# show transaction isolation level; transaction_isolation----------------------- read committed(1 行记录) testdb=> set transaction

Odoo 后端数据库postgreSQL事务级别

Table of Contents 事务的特性 并行事务的问题 事务隔离级别 Odoo事务隔离级别 odoo事务控制 事务的特性 事务4个特性,简写未ACID 原子性(Atomicity): 事务是数据库的逻辑工作单位,它对数据库的修改要么全部执行,要么全部不执行. 一致性(Consistemcy): 事务前后,数据库的状态都满足所有的完整性约束. 隔离性(Isolation): 并发执行的事务是隔离的,一个不影响一个.如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事

postgresql - 事务

1.事务的使用 begin;//开启关闭自动提交的事务 insert into testtab01 values(0); rollback;//事务回滚 2.SavePoint的使用 begin;//开启关闭自动提交的事务 insert into testtab01 values(0); savepoint first_savepoint;//创建事务保存点 insert into testtab02 values(1); rollback;//事务回滚 insert into testtab0

Postgresql事务隔离界别的总结

https://ybleeho.github.io/2019/05/04/Postgresql%E5%B9%B6%E5%8F%91%E6%8E%A7%E5%88%B6%E4%B9%8B%E4%BA%8B%E5%8A%A1%E9%9A%94%E7%A6%BB%E7%95%8C%E5%88%AB%E7%9A%84%E6%80%BB%E7%BB%93/ 原文地址:https://www.cnblogs.com/ybleeho/p/10816042.html

PostgreSQL Replication之第二章 理解PostgreSQL的事务日志(3)

2.3 理解一致性和数据丢失 挖掘PostgreSQL事务日志而不考虑一致性是不可能的.在本章的第一部分,我们已经大体上解释了事务日志的基本思想.您已经知道,无需事先的日志改变的能力,使数据处于一种好的形状是很难甚至是不可能的. 到现在为止,我们大多都在讨论崩溃的问题.因为数据文件中的条目的损坏而丢失文件是绝对不好的.但是,崩溃不是您要关心的唯一问题.另外两个重要的主题是: • 性能 • 数据丢失 虽然这可能是一个重要的主题的明显的选择,我们有这样的感觉,这两个主题都不好理解,是受尊敬的,并因此

PostgreSQL Replication之第二章 理解PostgreSQL的事务日志(2)

2.2 XLOG和复制 在本章中,您已经了解到PostgreSQL的事务日志已经对数据库做了所有的更改.事务日志本身被打包为易用的16MB段. 使用这种更改集来复制数据的想法是不牵强的.事实上,这是在每个关系(或者甚至非关系)数据库系统的发展的一个逻辑步骤.本书的其它部分,您将在许多方面看到PostgreSQL事务日志可以如何以许多不同的方法被使用,获取,存储,复制,和分析. 在大多数的复制系统中,PostgreSQL事务日志是整个体系结构(用于同步复制和异步复制)的的骨干.

PostgreSQL Replication之第二章 理解PostgreSQL的事务日志(5)

2.5 XLOG的内部结构 我们将使用事务贯穿本书,并让您在技术层面上更深地洞察事情是如果工作的,我们已经增加了这部分专门处理XLOG的内部工作机制.我们会尽量避免前往下降到C级,因为这将超出本书的范围,但我们会为您提供希望足够深的见解. 2.5.1 理解XLOG记录 对XLOG所做的更改是基于记录的.这意味着什么?让我们假设您在给一个表添加一行数据: test=# INSERT INTO t_test VALUES (1, 'hans'); INSERT 0 1 在这个例子中,我们正在插入一个

go+postgresql服务器

1 func AddGroup(w http.ResponseWriter, req *http.Request) { 2 3 outputReq(req) 4 5 responseJson := map[string]interface{}{jsonKeyMessage: "", jsonKeyResult: nil} 6 7 initResponse(w) 8 err := req.ParseForm() 9 if err != nil { 10 writeResponse(err

浅谈PostgreSQL数据库

近期工作重点一直放在数据库设计方面,借助这次机会抽时间整理了一些我对PostgreSQL数据库的理解,同时也是对近段时间学习的一个总结.对于很多人而言或许没有听说过这个数据库,通常我们耳边伴随的都是Oracle.MySQL.Microsoft SQL Server一类的关系型数据库. 但看下数据库排行榜,或许更能直观的认识到PostgreSQL数据库的强大与普遍 既然PostgreSQL排行这么高,那为何在国内名气不如其他数据库呢?这其中我认为重点在于两点:一.市场推广力度的问题:二.应用场景与