create table seata_state_machine_def ( id varchar(32) not null, name varchar(128) not null, tenant_id varchar(32) not null, app_name varchar(32) not null, type varchar(20), comment_ varchar(255), ver varchar(16) not null, gmt_create timestamp(3) not null, status varchar(2) not null, content clob(65536) inline length 2048, recover_strategy varchar(16), primary key(id) ); create table seata_state_machine_inst ( id varchar(128) not null, machine_id varchar(32) not null, tenant_id varchar(32) not null, parent_id varchar(128), gmt_started timestamp(3) not null, business_key varchar(48), uni_business_key varchar(128) not null generated always as( --Unique index does not allow empty columns on DB2 CASE WHEN "BUSINESS_KEY" IS NULL THEN "ID" ELSE "BUSINESS_KEY" END), start_params clob(65536) inline length 1024, gmt_end timestamp(3), excep blob(10240), end_params clob(65536) inline length 1024, status varchar(2), compensation_status varchar(2), is_running smallint, gmt_updated timestamp(3) not null, primary key(id) ); create unique index state_machine_inst_unibuzkey on seata_state_machine_inst(uni_business_key, tenant_id); create table seata_state_inst ( id varchar(48) not null, machine_inst_id varchar(128) not null, name varchar(128) not null, type varchar(20), service_name varchar(128), service_method varchar(128), service_type varchar(16), business_key varchar(48), state_id_compensated_for varchar(50), state_id_retried_for varchar(50), gmt_started timestamp(3) not null, is_for_update smallint, input_params clob(65536) inline length 1024, output_params clob(65536) inline length 1024, status varchar(2) not null, excep blob(10240), gmt_updated timestamp(3), gmt_end timestamp(3), primary key(id, machine_inst_id) );