-- -- Licensed to the Apache Software Foundation (ASF) under one or more -- contributor license agreements. See the NOTICE file distributed with -- this work for additional information regarding copyright ownership. -- The ASF licenses this file to You under the Apache License, Version 2.0 -- (the "License"); you may not use this file except in compliance with -- the License. You may obtain a copy of the License at -- -- http://www.apache.org/licenses/LICENSE-2.0 -- -- Unless required by applicable law or agreed to in writing, software -- distributed under the License is distributed on an "AS IS" BASIS, -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -- See the License for the specific language governing permissions and -- limitations under the License. -- -- -------------------------------- The script used when storeMode is 'db' -------------------------------- -- the table to store GlobalSession data CREATE TABLE "SEATA"."GLOBAL_TABLE" ( "XID" VARCHAR2(128) NOT NULL, "TRANSACTION_ID" BIGINT, "STATUS" TINYINT NOT NULL, "APPLICATION_ID" VARCHAR2(32), "TRANSACTION_SERVICE_GROUP" VARCHAR2(32), "TRANSACTION_NAME" VARCHAR2(128), "TIMEOUT" INT, "BEGIN_TIME" BIGINT, "APPLICATION_DATA" VARCHAR2(2000), "GMT_CREATE" TIMESTAMP(0), "GMT_MODIFIED" TIMESTAMP(0), PRIMARY KEY ("XID") ); CREATE INDEX "IDX_GMT_MODIFIED_STATUS" ON "SEATA"."GLOBAL_TABLE"("GMT_MODIFIED" ASC,"STATUS" ASC); CREATE INDEX "IDX_TRANSACTION_ID" ON "SEATA"."GLOBAL_TABLE"("TRANSACTION_ID" ASC); -- the table to store BranchSession data CREATE TABLE "SEATA"."BRANCH_TABLE" ( "BRANCH_ID" BIGINT NOT NULL, "XID" VARCHAR2(128) NOT NULL, "TRANSACTION_ID" BIGINT, "RESOURCE_GROUP_ID" VARCHAR2(32), "RESOURCE_ID" VARCHAR2(256), "BRANCH_TYPE" VARCHAR2(8), "STATUS" TINYINT, "CLIENT_ID" VARCHAR2(64), "APPLICATION_DATA" VARCHAR2(2000), "GMT_CREATE" TIMESTAMP(0), "GMT_MODIFIED" TIMESTAMP(0), PRIMARY KEY ("BRANCH_ID") ); CREATE INDEX "IDX_XID" ON "SEATA"."BRANCH_TABLE"("XID" ASC); -- the table to store lock data CREATE TABLE "SEATA"."LOCK_TABLE" ( "ROW_KEY" VARCHAR2(128) NOT NULL, "XID" VARCHAR2(128), "TRANSACTION_ID" BIGINT, "BRANCH_ID" BIGINT NOT NULL, "RESOURCE_ID" VARCHAR2(256), "TABLE_NAME" VARCHAR2(32), "PK" VARCHAR2(36), "STATUS" TINYINT NOT NULL DEFAULT 0, "GMT_CREATE" TIMESTAMP(0), "GMT_MODIFIED" TIMESTAMP(0), PRIMARY KEY ("ROW_KEY") ); COMMENT ON COLUMN "SEATA"."LOCK_TABLE"."STATUS" IS '0:locked ,1:rollbacking'; CREATE INDEX "IDX_BRANCH_ID" ON "SEATA"."LOCK_TABLE" ("BRANCH_ID" ASC); CREATE INDEX "IDX_STATUS" ON "SEATA"."LOCK_TABLE" ("STATUS" ASC); CREATE TABLE "SEATA"."DISTRIBUTED_LOCK" ( "LOCK_KEY" VARCHAR2(20) NOT NULL, "LOCK_VALUE" VARCHAR2(20) NOT NULL, "EXPIRE" BIGINT NOT NULL, PRIMARY KEY ("LOCK_KEY") ); INSERT INTO "SEATA"."DISTRIBUTED_LOCK" ("LOCK_KEY", "LOCK_VALUE", "EXPIRE") VALUES ('AsyncCommitting', ' ', 0); INSERT INTO "SEATA"."DISTRIBUTED_LOCK" ("LOCK_KEY", "LOCK_VALUE", "EXPIRE") VALUES ('RetryCommitting', ' ', 0); INSERT INTO "SEATA"."DISTRIBUTED_LOCK" ("LOCK_KEY", "LOCK_VALUE", "EXPIRE") VALUES ('RetryRollbacking', ' ', 0); INSERT INTO "SEATA"."DISTRIBUTED_LOCK" ("LOCK_KEY", "LOCK_VALUE", "EXPIRE") VALUES ('TxTimeoutCheck', ' ', 0); CREATE TABLE "SEATA"."VGROUP_TABLE" ( `VGROUP` VARCHAR2(255), `NAMESPACE` VARCHAR2(255), `CLUSTER` VARCHAR2(255), PRIMARY KEY (`VGROUP`) );