AbetoDesign_FactuGES2/Database/scripts/replicador.sql

160 lines
4.1 KiB
MySQL
Raw Normal View History

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 ; ^