暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
支付故障给全民的教育启示:数据库事务多重要.doc
85
6页
11次
2025-04-25
免费下载
支付故障给全民的教育启示:数据库事务多重要
原创 红石
PG
现在,人们经常会使用网上购物、手机支付,往往都察觉不出数
据库在背后的默默贡献。尤其是,大多数人很少知道数据库事务的
存在,它是干什么的?它有多重要?
什么是数据库事务
数据库事务是由一个或多个操作组成的单个工作单元。
事务的一个典型例子是从一个账户到另一个账户的银行转账。一
笔完整的交易必须保证发送方和接收方账户之间的余额。这意味着
如果发送方账户转账
X
金额,接收方就会收到
X
金额,不多也不少。
PostgreSQL
事务是原子的、一致的、隔离的和持久的。这些属
性通常称为
ACID
原子性保证事务以全有或全无的方式完成。
一致性确保写入数据库的数据更改必须有效并遵循预定义的规
则。
隔离性决定了事务完整性如何对其他事务可见。
持久性确保已提交的事务将永久存储在数据库中。
设置样例表
让我们创建一个新表,名为
accounts
,用于演示
DROP TABLE IF EXISTS accounts;
CREATE TABLE accounts (
id INT GENERATED BY DEFAULT AS IDENTITY,
name VARCHAR(100) NOT NULL,
balance DEC(15,2) NOT NULL,
PRIMARY KEY(id)
);
开始事务
当您执行以下
INSERT
语句时
INSERT INTO accounts(name,balance)
VALUES('Bob',10000);
P
ostgreSQL
立即将新行插入
accounts
表中。在这种情况下,
您不知道事务何时 开始,也无法拦截修改或回滚。
要启动事务,请使用以下语句:
BEGIN TRANSACTION;
或者
BEGIN WORK;
要不就:
BEGIN;
例如,以下语句启动一个新事务并向
accounts
表中插入一个新
帐户:
BEGIN;
INSERT INTO accounts(name,balance)
VALUES('Alice',10000);
从当前会话中,通过查询
accounts
表可以看到变化:
SELECT
id,
name,
balance
FROM
accounts;
但是,如果您启动
一个新会话并执行上面的查询,您将看不到更改。
SELECT
id,
name,
balance
of 6
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜