blob: ec3d1a27b8749a1a49b5b0a9697f3e2b0e95ac7f [file] [log] [blame]
--
-- 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`)
);