postgresql.sql 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. -- -------------------------------- The script used when storeMode is 'db' --------------------------------
  2. -- the table to store GlobalSession data
  3. CREATE TABLE IF NOT EXISTS public.global_table
  4. (
  5. xid VARCHAR(128) NOT NULL,
  6. transaction_id BIGINT,
  7. status SMALLINT NOT NULL,
  8. application_id VARCHAR(32),
  9. transaction_service_group VARCHAR(32),
  10. transaction_name VARCHAR(128),
  11. timeout INT,
  12. begin_time BIGINT,
  13. application_data VARCHAR(2000),
  14. gmt_create TIMESTAMP(0),
  15. gmt_modified TIMESTAMP(0),
  16. CONSTRAINT pk_global_table PRIMARY KEY (xid)
  17. );
  18. CREATE INDEX idx_status_gmt_modified ON public.global_table (status, gmt_modified);
  19. CREATE INDEX idx_transaction_id ON public.global_table (transaction_id);
  20. -- the table to store BranchSession data
  21. CREATE TABLE IF NOT EXISTS public.branch_table
  22. (
  23. branch_id BIGINT NOT NULL,
  24. xid VARCHAR(128) NOT NULL,
  25. transaction_id BIGINT,
  26. resource_group_id VARCHAR(32),
  27. resource_id VARCHAR(256),
  28. branch_type VARCHAR(8),
  29. status SMALLINT,
  30. client_id VARCHAR(64),
  31. application_data VARCHAR(2000),
  32. gmt_create TIMESTAMP(6),
  33. gmt_modified TIMESTAMP(6),
  34. CONSTRAINT pk_branch_table PRIMARY KEY (branch_id)
  35. );
  36. CREATE INDEX idx_xid ON public.branch_table (xid);
  37. -- the table to store lock data
  38. CREATE TABLE IF NOT EXISTS public.lock_table
  39. (
  40. row_key VARCHAR(128) NOT NULL,
  41. xid VARCHAR(128),
  42. transaction_id BIGINT,
  43. branch_id BIGINT NOT NULL,
  44. resource_id VARCHAR(256),
  45. table_name VARCHAR(32),
  46. pk VARCHAR(36),
  47. status SMALLINT NOT NULL DEFAULT 0,
  48. gmt_create TIMESTAMP(0),
  49. gmt_modified TIMESTAMP(0),
  50. CONSTRAINT pk_lock_table PRIMARY KEY (row_key)
  51. );
  52. comment on column public.lock_table.status is '0:locked ,1:rollbacking';
  53. CREATE INDEX idx_branch_id ON public.lock_table (branch_id);
  54. CREATE INDEX idx_xid ON public.lock_table (xid);
  55. CREATE INDEX idx_status ON public.lock_table (status);
  56. CREATE TABLE distributed_lock (
  57. lock_key VARCHAR(20) NOT NULL,
  58. lock_value VARCHAR(20) NOT NULL,
  59. expire BIGINT NOT NULL,
  60. CONSTRAINT pk_distributed_lock_table PRIMARY KEY (lock_key)
  61. );
  62. INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES ('AsyncCommitting', ' ', 0);
  63. INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES ('RetryCommitting', ' ', 0);
  64. INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES ('RetryRollbacking', ' ', 0);
  65. INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES ('TxTimeoutCheck', ' ', 0);