分布式事务创建表结构(下单扣库存案例数据库)
下单后扣库存失败,不一致了。下单失败,扣库存成功不一致。
创建两个数据库
第一个 toov_order
sql:
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for order
-- ----------------------------
DROP TABLE IF EXISTS `order`;
CREATE TABLE `order` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL COMMENT '订单名称',
`order_createtime` datetime DEFAULT NULL COMMENT '下单时间',
`order_state` int(11) DEFAULT NULL COMMENT '订单状态 0 已经未支付 1已经支付 2已退单',
`order_money` double(10,0) DEFAULT NULL COMMENT '订单价格',
`commodity_id` int(10) DEFAULT NULL COMMENT '商品ID',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of order
-- ----------------------------
INSERT INTO `order` VALUES ('9', '洗发水', '2018-10-09 15:30:03', '300', '0', '30');
INSERT INTO `order` VALUES ('13', '手机壳', '2018-10-09 16:59:33', '300', '0', '30');
第二个toov5_stock
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for stock
-- ----------------------------
DROP TABLE IF EXISTS `stock`;
CREATE TABLE `stock` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`commodity_id` int(11) DEFAULT NULL COMMENT '商品ID',
`stock` int(11) DEFAULT NULL COMMENT '库存余额',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of stock
-- ----------------------------
INSERT INTO `stock` VALUES ('1', '30', '89');
本文通过创建两个数据库toov_order和toov5_stock,详细介绍了分布式事务中下单和扣减库存的操作,探讨了在分布式环境下如何确保事务的一致性,避免出现下单成功但库存扣减失败等不一致情况。
805

被折叠的 条评论
为什么被折叠?



