首页 > 数据库 >sql 模拟转账

sql 模拟转账

时间:2024-03-06 18:01:02浏览次数:17  
标签:转账 account SET name -- money sql NULL 模拟

CREATE DATABASE `shop` CHARACTER SET utf8 COLLATE utf8_general_ci
CREATE TABLE `account`(
  `id` INT(3) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(10) NOT NULL,
  `money` DECIMAL(9,2) NOT NULL,
  PRIMARY KEY(id)
)ENGINE=INNODB DEFAULT CHARSET=utf8

INSERT INTO account(`name`,`money`) VALUES('A',2000.00),('B',10000.00)
-- 模拟事物转账
SET autocommit=0;
START TRANSACTION; -- 开启一个事物
UPDATE account SET money=money-500 WHERE `name`='A';
UPDATE account SET money=money+500 WHERE `name`='B';
COMMIT;--提交
ROLLBACK;--回滚
SET autocommit = 1;-- 恢复默认值
 

标签:转账,account,SET,name,--,money,sql,NULL,模拟
From: https://www.cnblogs.com/huangjiangfei/p/18057219

相关文章

  • Mysql和Oracle在group by中的一些差异
    1.是否select字段需要全部出现?Oracle中出现在select列表中的字段或者出现在orderby后面的字段,如果不是包含在分组函数中,那么该字段必须同时在groupby子句中出现。Mysql没有此限制例:Mysql中,以下SQL语句是成立的,可见这里的GroupbySELECTp.PDTNO,p.PDTNAME,sum(a.QUAN......
  • Mysql和Oracle在order by上关于聚合函数一些不同的差异
    1.问题SELECTp.PDTNO,p.PDTNAME,sum(a.QUANTITY)ASapplySumCountFROMPRODUCTpJOINAPPLYaONp.PDTNO=a.PDTNOGROUPBYPDTNOORDERBYapplySumCountDESC;在Mysql中我们经常将select中聚合函数得到的结果起别名用于orderby但是同样的方式在Oracle中就不行,......
  • MySQL面试题
    MySQL隔离级别并发访问数据库时存在的问题脏读:又称无效数据的读出,是指在数据库访问中,事务T1将某一值修改但是还未提交,然后事务T2读取该值,此后T1因为某种原因撤销对该值的修改并提交,这就导致了T2所读取到的数据是无效的,值得注意的是,脏读一般是针对于update操作的。不可重复读:是......
  • nginx反向代理服务器实现postgreSQL
    可访问的地址:192.168.1.200:9856不可访问的地址:192.168.214.133:32222(pg库的地址)在192.168.1.200服务器上安装nginx,设置一个监听的端口(9856),将地址二192.168.214.133:32222映射到这个端口(版本要大于nginx1.9.xxx,stream和http是同级关系,在Navicat上通过连接主机-192.168.1......
  • IDEA连接MySQL
    打开IDEA右侧工具栏的数据库 添加MySQL  输入用户名和密码,连接   未完待续  本文记录软件实习的一些重要过程,方便以后查看,有不对的或者不懂的欢迎指正讨论......
  • MySQL下载安装
    参考教程https://www.bilibili.com/video/BV1PW421N7XB/?spm_id_from=333.337.search-card.all.click&vd_source=375e0493842b1c5315065fd44121c701  进入官网https://www.mysql.com/首页拉到最下面 选择语言可切换至中文版本 切换到下载界面 下拉点击社区版本......
  • MySQL 从库同步数据报错: Can't find record in '表名', Error_code: 1032; handler er
    由于两边数据不一致,主库host表的某条数据在从库不存在,导致同步时执行update报错。 修复的原理很简单,找到主从不一致的这条数据,在从库补上,让update能执行就好。由于需要从binlog里找数据,需要确保中断之后的binlog没被删除,否则就只能重搭了。导出日志:mysqlbinlog-v--stop-po......
  • MySQL JOIN 的执行过程
    对于MySQL的JOIN,不知道大家有没有去想过他的执行流程,亦或有没有怀疑过自己的理解;如果大家不知道怎么检验,可以试着回答如下的问题。 驱动表的选择:MySQL会如何选择驱动表,按从左至右的顺序选择第一个? 多表连接的顺序 假设我们有3张表:A、B、C,和如下SQL --伪SQL,......
  • MySQL多表联查、分组查询每组最新的一条数据,并对某一字段进行条件统计
    起因本人在写查询的时候遇到了如题所述的要求,多次尝试无果(纯菜),最后发现“sql不会写?那就疯狂联表+堆子查询”。如果有更好的写法,也请在评论区赐教表信息如下equipment表:存储设备的名称等信息。其实这个表在接下来的查询中的作用,仅仅只是通过eq_id和其它表进行关联,然后查询到设备......
  • LY1154 [ 20230320 CQYC省选模拟赛 T1 ] 选拔士兵
    题意P和T各有\(n\)个课程。P的课程类型由\(a_i\)表示,价值为\(x_i\)。T的课程类型由\(b_i\)表示,价值为\(y_i\)。同样的课程不能上两遍。需要满足P和T的课程各在同一区间内。不选输出\([0,0]\),问使得价值最大的方案。Sol非常好数据结构题,使我的大脑旋转......