mysql订单事务

MySQL是一个开源的关系型数据库管理系统,拥有完整的事务处理能力。当我们需要处理订单时,常常需要使用到MySQL的事务处理能力。

mysql订单事务

一个订单通常由多个订单项组成,而多个订单项的插入或更新操作必须同时成功或者同时失败,否则就可能造成订单与订单项的不一致。这时候,我们就需要使用MySQL的事务来保证数据的一致性。

START TRANSACTION; -- 开始事务 -- 插入订单信息 INSERT INTO orders (order_no, order_date, order_status, user_id) VALUES ('202106010001', '2021-06-01', 'paid', 10001); -- 插入订单项信息 INSERT INTO order_items (order_no, product_id, quantity, price) VALUES ('202106010001', 20001, 2, 100) , ('202106010001', 20002, 1, 200); -- 更新商品库存 UPDATE products SET stock = stock - 3 WHERE product_id IN (20001, 20002); COMMIT; -- 提交事务