16 lines
1.0 KiB
SQL
16 lines
1.0 KiB
SQL
USE baiyue_firstleg;
|
|||
|
|
|
||
|
|
-- 可靠审计本地 Outbox;与头程业务表位于同一数据库。
|
||
|
|
CREATE TABLE IF NOT EXISTS sys_audit_outbox (
|
||
|
|
event_id VARCHAR(64) NOT NULL, event_type VARCHAR(64) NOT NULL, resource_type VARCHAR(64) NOT NULL,
|
||
|
|
resource_id VARCHAR(128) NULL, service_name VARCHAR(64) NULL, payload_json JSON NOT NULL,
|
||
|
|
status VARCHAR(16) NOT NULL DEFAULT 'PENDING', attempt_count INT NOT NULL DEFAULT 0,
|
||
|
|
compensation_count INT NOT NULL DEFAULT 0,
|
||
|
|
next_retry_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), lease_owner VARCHAR(128) NULL,
|
||
|
|
lease_until DATETIME(3) NULL, last_error VARCHAR(1000) NULL, dead_at DATETIME(3) NULL,
|
||
|
|
sent_at DATETIME(3) NULL, created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
|
|
PRIMARY KEY (event_id), KEY idx_audit_outbox_publish (status, next_retry_at, lease_until, created_at),
|
||
|
|
KEY idx_audit_outbox_retention (status, sent_at)
|
||
|
|
) ENGINE=InnoDB COMMENT='可靠审计事件本地发送箱';
|