-- Seata Store Database Schema -- 用于存储Seata分布式事务的全局事务、分支事务和锁信息 CREATE DATABASE IF NOT EXISTS seata DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE seata; -- 全局事务表 CREATE TABLE IF NOT EXISTS `global_table` ( `xid` VARCHAR(128) NOT NULL, `transaction_id` BIGINT, `status` TINYINT NOT NULL COMMENT '0:begin;1:committing;2:committed;3:rollbacking;4:rolled back;5:timeout rollback', `application_id` VARCHAR(64), `transaction_service_group` VARCHAR(64), `transaction_name` VARCHAR(64), `timeout` INT, `begin_time` BIGINT, `application_data` VARCHAR(500), `gmt_create` DATETIME, `gmt_modified` DATETIME, PRIMARY KEY (`xid`), KEY `idx_gmt_modified_status` (`gmt_modified`), KEY `idx_transaction_id` (`transaction_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='全局事务表'; -- 分支事务表 CREATE TABLE IF NOT EXISTS `branch_table` ( `branch_id` BIGINT NOT NULL, `xid` VARCHAR(128) NOT NULL, `transaction_id` BIGINT, `resource_group_id` VARCHAR(32), `resource_id` VARCHAR(256), `branch_type` VARCHAR(8), `status` TINYINT, `client_id` VARCHAR(64), `application_data` VARCHAR(500), `gmt_create` DATETIME, `gmt_modified` DATETIME, PRIMARY KEY (`branch_id`), KEY `idx_xid` (`xid`), KEY `idx_transaction_id` (`transaction_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='分支事务表'; -- 全局锁表 CREATE TABLE IF NOT EXISTS `lock_table` ( `row_key` VARCHAR(128) NOT NULL, `xid` VARCHAR(128), `transaction_id` BIGINT, `branch_id` BIGINT, `resource_id` VARCHAR(256), `table_name` VARCHAR(32), `pk` VARCHAR(32), `status` TINYINT NOT NULL DEFAULT '0' COMMENT '0:locked;1:unlocking', `gmt_create` DATETIME, `gmt_modified` DATETIME, PRIMARY KEY (`row_key`), KEY `idx_branch_id` (`branch_id`), KEY `idx_status` (`status`), KEY `idx_xid` (`xid`), KEY `idx_transaction_id` (`transaction_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='全局锁表'; -- 分布式锁表(用于TCC模式) CREATE TABLE IF NOT EXISTS `distributed_lock_table` ( `lock_key` VARCHAR(128) NOT NULL, `lock_value` VARCHAR(256), `expire_time` BIGINT, `gmt_create` DATETIME, `gmt_modified` DATETIME, PRIMARY KEY (`lock_key`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='分布式锁表';