暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss每日一练第16天|学习心得

原创 吴毅 2021-12-16
759

今天学习openGauss事务控制,以下是作业和心得:
1. 连接openGauss

su - omm gsql -r

2. 以默认方式启动事务1,修改事务隔离级别,查看transaction_isolation

start transaction; set local transaction isolation level read committed read only; show transaction_isolation; show transaction_read_only; END; /

image.png
3. 以读写方式启动事务2,创建新表,修改事务为只读事务,查看transaction_read_only,并向表中插入记录

start transaction isolation level read committed read write; show transaction_read_only; create table products (product_id INTEGER, product_name Char(20), category Char(30)); set local transaction isolation level read committed read only; show transaction_read_only; INSERT INTO products (product_id, product_name, category) VALUES (1601, 'lamaze', 'toys'),(1700, 'wait interface', 'Books'),(1666, 'harry potter', 'toys'); end; /

image.png
4. 启动事务3,对表进行增删改查,并用到创建savepoint,回滚savepoint和删除savepoint

create table products (product_id INTEGER, product_name Char(20), category Char(30)); start transaction; insert into products (product_id, product_name, category) VALUES (1601, 'lamaze', 'toys'); savepoint savepoint_1; insert into products (product_id, product_name, category) VALUES (1700, 'wait interface', 'Books'); rollback to savepoint savepoint_1; release savepoint savepoint_1; insert into products (product_id, product_name, category) VALUES (1666, 'harry potter', 'toys'); commit; select * from products; /

image.png
5. 清理数据

drop table products; /

通过学习和作业,巩固了openGauss事务控制的知识。事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。它主要分为启动事务,设置事务,提交事务和回滚事务。
isolation level:指定事务隔离级别,它决定当一个事务中存在其他并发运行事务时它能够看到什么数据。
read committed:读已提交隔离级别,只能读到已经提交的数据,而不会读到未提交的数据。这是缺省值。
repeatable read:可重复读隔离级别,仅仅看到事务开始之前提交的数据,它不能看到未提交的数据,以及在事务执行期间由其它并发事务提交的修改。
特别注意:在事务中第一个数据修改语句(SELECT, INSERT, DELETE, UPDATE, FETCH, COPY)执行之后,事务隔离级别就不能再次设置。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论