-- ========================================= -- Undo Log表 - AT模式自动补偿事务必需 -- ========================================= -- 必须在每个业务数据库中创建此表 -- Seata AT模式通过undo_log表记录数据变更前后镜像,用于回滚 -- MySQL 8.0 版本 CREATE TABLE IF NOT EXISTS `undo_log` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `branch_id` BIGINT NOT NULL, `xid` VARCHAR(128) NOT NULL, `context` VARCHAR(128) NOT NULL, `rollback_info` LONGBLOB NOT NULL, `log_status` INT NOT NULL, `log_created` DATETIME NOT NULL, `log_modified` DATETIME NOT NULL, `ext` VARCHAR(100) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`), KEY `ix_log_created` (`log_created`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AT模式undo_log回滚日志表'; -- MySQL 5.7 版本(如果使用) -- CREATE TABLE IF NOT EXISTS `undo_log` ( -- `id` BIGINT NOT NULL AUTO_INCREMENT, -- `branch_id` BIGINT NOT NULL, -- `xid` VARCHAR(128) NOT NULL, -- `context` VARCHAR(128) NOT NULL, -- `rollback_info` LONGBLOB NOT NULL, -- `log_status` INT NOT NULL, -- `log_created` DATETIME NOT NULL, -- `log_modified` DATETIME NOT NULL, -- `ext` VARCHAR(100) DEFAULT NULL, -- PRIMARY KEY (`id`), -- UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`), -- KEY `ix_log_created` (`log_created`) -- ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='AT模式undo_log回滚日志表';