160 lines
4.1 KiB
MySQL
160 lines
4.1 KiB
MySQL
|
|
SET SQL DIALECT 3;
|
||
|
|
|
||
|
|
SET NAMES ISO8859_1;
|
||
|
|
|
||
|
|
CREATE DATABASE 'REPLICATE.FDB'
|
||
|
|
PAGE_SIZE 4096
|
||
|
|
DEFAULT CHARACTER SET ISO8859_1;
|
||
|
|
|
||
|
|
/******************************************************************************/
|
||
|
|
/**** Domains ****/
|
||
|
|
/******************************************************************************/
|
||
|
|
|
||
|
|
CREATE DOMAIN GENSMALLINT AS
|
||
|
|
SMALLINT
|
||
|
|
DEFAULT 0
|
||
|
|
NOT NULL;
|
||
|
|
|
||
|
|
CREATE DOMAIN OP AS
|
||
|
|
CHAR(1);
|
||
|
|
|
||
|
|
CREATE DOMAIN PATH AS
|
||
|
|
VARCHAR(255);
|
||
|
|
|
||
|
|
CREATE DOMAIN PKID AS
|
||
|
|
INTEGER
|
||
|
|
NOT NULL;
|
||
|
|
|
||
|
|
CREATE DOMAIN PKIDBIG AS
|
||
|
|
BIGINT
|
||
|
|
NOT NULL;
|
||
|
|
|
||
|
|
CREATE DOMAIN TABLENAME AS
|
||
|
|
VARCHAR(32);
|
||
|
|
|
||
|
|
CREATE DOMAIN USERNAME AS
|
||
|
|
VARCHAR(50);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
/******************************************************************************/
|
||
|
|
/**** Generators ****/
|
||
|
|
/******************************************************************************/
|
||
|
|
|
||
|
|
CREATE GENERATOR GEN_LOC_ID;
|
||
|
|
|
||
|
|
CREATE GENERATOR GEN_REPLDEFS_ID;
|
||
|
|
|
||
|
|
CREATE GENERATOR GEN_SOURCE_LOCATION_ID;
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
/******************************************************************************/
|
||
|
|
/**** Tables ****/
|
||
|
|
/******************************************************************************/
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
CREATE TABLE LOCATIONS (
|
||
|
|
LOC_ID PKID NOT NULL,
|
||
|
|
LOC_PATH PATH,
|
||
|
|
RAS_SERVICENAME USERNAME,
|
||
|
|
RAS_USER USERNAME,
|
||
|
|
RAS_PASSWORD USERNAME,
|
||
|
|
USERNAME USERNAME,
|
||
|
|
PASSWD USERNAME
|
||
|
|
);
|
||
|
|
|
||
|
|
|
||
|
|
CREATE TABLE REPLDEFS (
|
||
|
|
ID PKID NOT NULL,
|
||
|
|
FK_SOURCE PKID NOT NULL,
|
||
|
|
TABLENAME TABLENAME,
|
||
|
|
OPTYPE OP,
|
||
|
|
SQLSTMT PATH,
|
||
|
|
MORE GENSMALLINT
|
||
|
|
);
|
||
|
|
|
||
|
|
|
||
|
|
CREATE TABLE SOURCE_LOCATION (
|
||
|
|
ID PKID NOT NULL,
|
||
|
|
SOURCE_SERVER PATH,
|
||
|
|
SOURCE_PATH PATH,
|
||
|
|
USERNAME USERNAME,
|
||
|
|
PASSWD USERNAME,
|
||
|
|
REPLUSER USERNAME,
|
||
|
|
REPLPASSWD USERNAME
|
||
|
|
);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
/******************************************************************************/
|
||
|
|
/**** Primary Keys ****/
|
||
|
|
/******************************************************************************/
|
||
|
|
|
||
|
|
ALTER TABLE LOCATIONS ADD PRIMARY KEY (LOC_ID);
|
||
|
|
ALTER TABLE REPLDEFS ADD CONSTRAINT PK_REPLDEFS PRIMARY KEY (ID);
|
||
|
|
ALTER TABLE SOURCE_LOCATION ADD PRIMARY KEY (ID);
|
||
|
|
|
||
|
|
|
||
|
|
/******************************************************************************/
|
||
|
|
/**** Foreign Keys ****/
|
||
|
|
/******************************************************************************/
|
||
|
|
|
||
|
|
ALTER TABLE REPLDEFS ADD CONSTRAINT FK_REPLDEFS FOREIGN KEY (FK_SOURCE) REFERENCES SOURCE_LOCATION (ID) ON DELETE CASCADE;
|
||
|
|
|
||
|
|
|
||
|
|
/******************************************************************************/
|
||
|
|
/**** Indices ****/
|
||
|
|
/******************************************************************************/
|
||
|
|
|
||
|
|
CREATE INDEX REPLDEFS_IDXTABLENAME ON REPLDEFS (TABLENAME);
|
||
|
|
|
||
|
|
|
||
|
|
/******************************************************************************/
|
||
|
|
/**** Triggers ****/
|
||
|
|
/******************************************************************************/
|
||
|
|
|
||
|
|
|
||
|
|
SET TERM ^ ;
|
||
|
|
|
||
|
|
|
||
|
|
/******************************************************************************/
|
||
|
|
/**** Triggers for tables ****/
|
||
|
|
/******************************************************************************/
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
/* Trigger: INSERT_LOCATIONS */
|
||
|
|
CREATE TRIGGER INSERT_LOCATIONS FOR LOCATIONS
|
||
|
|
ACTIVE BEFORE INSERT POSITION 0
|
||
|
|
AS
|
||
|
|
BEGIN
|
||
|
|
NEW.LOC_ID = GEN_ID( GEN_LOC_ID, 1 );
|
||
|
|
END
|
||
|
|
^
|
||
|
|
|
||
|
|
|
||
|
|
/* Trigger: REPLDEFS_BI */
|
||
|
|
CREATE TRIGGER REPLDEFS_BI FOR REPLDEFS
|
||
|
|
ACTIVE BEFORE INSERT POSITION 0
|
||
|
|
AS BEGIN
|
||
|
|
IF (NEW.ID IS NULL) THEN
|
||
|
|
NEW.ID = GEN_ID(GEN_REPLDEFS_ID,1);
|
||
|
|
END
|
||
|
|
^
|
||
|
|
|
||
|
|
|
||
|
|
/* Trigger: SOURCE_LOCATION_BI */
|
||
|
|
CREATE TRIGGER SOURCE_LOCATION_BI FOR SOURCE_LOCATION
|
||
|
|
ACTIVE BEFORE INSERT POSITION 0
|
||
|
|
AS BEGIN
|
||
|
|
IF (NEW.ID IS NULL) THEN
|
||
|
|
NEW.ID = GEN_ID(GEN_SOURCE_LOCATION_ID,1);
|
||
|
|
END
|
||
|
|
^
|
||
|
|
|
||
|
|
|
||
|
|
SET TERM ; ^
|