Advertisement
Guest User

Список таблиц

a guest
Apr 19th, 2011
596
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.91 KB | None | 0 0
  1. /*
  2. список таблиц для репликации
  3. */
  4. CREATE GENERATOR GEN_RPL_TABLES_ID;
  5. CREATE TABLE RPL_TABLES (
  6.     ID             INTEGER NOT NULL,
  7.     TABLE_NAME     MY_SHORTCHAR /* MY_SHORTCHAR = VARCHAR(32) */,
  8.     RPL_ALLFIELDS  MY_BOOLEAN   /* MY_BOOLEAN = INTEGER DEFAULT 0 NOT NULL CHECK (value in (0, 1)) */,
  9.     IS_DOCHEADER   MY_BOOLEAN   /* MY_BOOLEAN = INTEGER DEFAULT 0 NOT NULL CHECK (value in (0, 1)) */
  10. );
  11.  
  12. /*
  13. список полей для репликации
  14. */
  15. CREATE GENERATOR GEN_RPL_FIELDS_ID;
  16. CREATE TABLE RPL_FIELDS (
  17.     ID          INTEGER NOT NULL,
  18.     TABLE_ID    INTEGER,
  19.     FIELD_NAME  MY_SHORTCHAR
  20. );
  21.  
  22. /*
  23. лог запросов
  24. */
  25. CREATE GENERATOR GEN_RPL_LOG_ID;
  26. CREATE TABLE RPL_LOG (
  27.     ID          INTEGER NOT NULL,
  28.     SESSION_ID  INTEGER,
  29.     RPL_SQL     VARCHAR(32000)
  30. );
  31.  
  32. CREATE OR ALTER TRIGGER RPL_LOG_BI FOR RPL_LOG
  33. ACTIVE BEFORE INSERT POSITION 0
  34. AS
  35. BEGIN
  36.   IF (NEW.id IS NULL) THEN
  37.     NEW.id = gen_id(gen_rpl_log_id,1);
  38.   IF (NEW.session_id IS NULL) THEN
  39.     NEW.session_id = gen_id(gen_rpl_sessions_id, 0);
  40. END
  41.  
  42. /*
  43. сессии репликации; одна сессия - набор запросов между двумя сеансами репликации
  44. */
  45. CREATE GENERATOR GEN_RPL_SESSIONS_ID;
  46. CREATE TABLE RPL_SESSIONS (
  47.     ID        INTEGER NOT NULL,
  48.     BEGIN_TS  TIMESTAMP,
  49.     END_TS    TIMESTAMP
  50. );
  51.  
  52. CREATE OR ALTER TRIGGER RPL_SESSIONS_BI FOR RPL_SESSIONS
  53. ACTIVE BEFORE INSERT POSITION 0
  54. AS
  55. BEGIN
  56.   IF (NEW.id IS NULL) THEN
  57.     NEW.id = gen_id(gen_rpl_sessions_id,1);
  58.   IF (NEW.begin_ts IS NULL) THEN
  59.     NEW.begin_ts = CURRENT_TIMESTAMP;
  60. END
  61.  
  62. /*
  63. настройки баз, принимающих участие в репликации;
  64. пути-имена-явки-пароли нужно указать только для сервера
  65. */
  66. CREATE GENERATOR GEN_RPL_DATABASES_ID;
  67. CREATE TABLE RPL_DATABASES (
  68.     ID            INTEGER,
  69.     ALIAS         MY_SHORTCHAR /* MY_SHORTCHAR = VARCHAR(32) */,
  70.     LAST_SESSION  INTEGER,
  71.     ITS_ME        MY_BOOLEAN   /* MY_BOOLEAN = INTEGER DEFAULT 0 NOT NULL CHECK (value in (0, 1)) */,
  72.     ITS_SERVER    MY_BOOLEAN
  73.     DBPATH        MY_LONGCHAR  /* MY_LONGCHAR = VARCHAR(256) */,
  74.     DBUSER        MY_SHORTCHAR,
  75.     DBPASS        MY_SHORTCHAR,
  76.     DBHOST        MY_SHORTCHAR
  77. );
  78.  
  79. /*
  80. что, когда и откуда получили; так, на всякий случай
  81. */
  82. CREATE GENERATOR GEN_RPL_RECEIVED_ID;
  83. CREATE TABLE RPL_RECEIVED (
  84.     ID           INTEGER NOT NULL,
  85.     DB_ID        INTEGER,
  86.     BLOB_ID      INTEGER,
  87.     RECEIVED_TS  TIMESTAMP,
  88.     SESSION_ID   INTEGER
  89. );
  90.  
  91. /*
  92. скрипты, полученные от баз-клиентов
  93. */
  94. CREATE GENERATOR GEN_RPL_BLOBS_ID;
  95. CREATE TABLE RPL_BLOBS (
  96.     ID          INTEGER NOT NULL,
  97.     SENDER_ID   INTEGER,
  98.     SESSION_ID  INTEGER,
  99.     RPL_BLOB    BLOB SUB_TYPE 0 SEGMENT SIZE 80
  100. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement