Kod: Tümünü seç
/* SQL Manager 2008 for InterBase/Firebird 5.0.0.1 */
/* ----------------------------------------------- */
/* Host : localhost */
/* Database : D:\Downloads\DEMO1\DEMO1.FDB */
CREATE DATABASE '127.0.0.1/3050:D:\Downloads\DEMO1\DEMO1.FDB' USER 'SYSDBA'
PAGE_SIZE 16384
DEFAULT CHARACTER SET NONE;
/* Definition for the `GEN_TABLE1_ID` generator : */
CREATE GENERATOR GEN_TABLE1_ID;
SET GENERATOR GEN_TABLE1_ID TO 6;
/* Definition for the `GEN_TABLE2_ID` generator : */
CREATE GENERATOR GEN_TABLE2_ID;
SET GENERATOR GEN_TABLE2_ID TO 6;
/* Definition for the `OMADIBEGULUM` exception : */
CREATE EXCEPTION OMADIBEGULUM 'Erişmek için THE_ROLE isimli rol ile bağlanın';
/* Structure for the `TABLE1` table : */
CREATE TABLE TABLE1 (
ID INTEGER NOT NULL,
TABLE2ID INTEGER,
NUM1 INTEGER,
STR1 VARCHAR(100) CHARACTER SET WIN1254 COLLATE WIN1254,
DATETIME1 TIMESTAMP);
ALTER TABLE TABLE1 ADD CONSTRAINT PK_TABLE1 PRIMARY KEY (ID);
/* Structure for the `TABLE2` table : */
CREATE TABLE TABLE2 (
ID INTEGER NOT NULL,
TABLE1ID INTEGER,
NUM2 INTEGER,
STR2 VARCHAR(100) CHARACTER SET WIN1254 COLLATE WIN1254,
DATETIME2 TIMESTAMP);
ALTER TABLE TABLE2 ADD CONSTRAINT PK_TABLE2 PRIMARY KEY (ID);
/* Data for the `TABLE1` table (Records 1 - 6) */
INSERT INTO TABLE1
VALUES (1, 3, 11, 'S11', NULL);
INSERT INTO TABLE1
VALUES (2, 3, 12, 'S12', NULL);
INSERT INTO TABLE1
VALUES (3, 4, 13, 'S13', NULL);
INSERT INTO TABLE1
VALUES (4, 4, 14, 'S14', NULL);
INSERT INTO TABLE1
VALUES (5, NULL, 15, 'S14', NULL);
INSERT INTO TABLE1
VALUES (6, NULL, 16, NULL, NULL);
COMMIT WORK;
/* Data for the `TABLE2` table (Records 1 - 6) */
INSERT INTO TABLE2
VALUES (1, 1, 21, 'S21', NULL);
INSERT INTO TABLE2
VALUES (2, 1, 22, 'S22', NULL);
INSERT INTO TABLE2
VALUES (3, 2, 23, 'S23', NULL);
INSERT INTO TABLE2
VALUES (4, 2, 24, 'S24', NULL);
INSERT INTO TABLE2
VALUES (5, NULL, 25, 'S25', NULL);
INSERT INTO TABLE2
VALUES (6, NULL, 26, NULL, NULL);
COMMIT WORK;
/* Definition for the `TABLE1_BI` trigger : */
SET TERM ^ ;
CREATE TRIGGER TABLE1_BI FOR TABLE1
ACTIVE BEFORE INSERT
POSITION 0
as
begin
if (new.id is null) then
new.id = gen_id(gen_table1_id,1);
end^
SET TERM ; ^
/* Definition for the `TABLE2_BI` trigger : */
SET TERM ^ ;
CREATE TRIGGER TABLE2_BI FOR TABLE2
ACTIVE BEFORE INSERT
POSITION 0
as
begin
if (new.id is null) then
new.id = gen_id(gen_table2_id,1);
end^
SET TERM ; ^
/* Definition for the `BAGLANTI` trigger : */
SET TERM ^ ;
CREATE TRIGGER BAGLANTI ACTIVE ON CONNECT POSITION 0
AS
begin
/* Trigger text */
if (current_role<>'THE_ROLE') then exception omadibegulum;
end
^
SET TERM ; ^
/* Definition for the `THE_ROLE` role : */
CREATE ROLE THE_ROLE;
/* Privilegies for the `TABLE1` : */
GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE ON TABLE1 TO SYSDBA WITH GRANT OPTION;
GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE ON TABLE1 TO THE_ROLE;
/* Privilegies for the `TABLE2` : */
GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE ON TABLE2 TO SYSDBA WITH GRANT OPTION;
GRANT SELECT, INSERT, DELETE, REFERENCES, UPDATE ON TABLE2 TO THE_ROLE;