CREATE TABLE TBREGIAO (
    ID INTEGER NOT NULL,
    DESCRICAO VARCHAR(80),
    UF VARCHAR(2),
    CIDADE VARCHAR(40),
    BAIRRO VARCHAR(40));

ALTER TABLE TBREGIAO
ADD CONSTRAINT PK_TBREGIAO
PRIMARY KEY (ID);

CREATE SEQUENCE GTBREGIAO;

create trigger ttbregiao_bi for tbregiao
active before insert position 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbregiao,1);
end;


CREATE OR ALTER trigger ttbregiao_b01iu for tbregiao
active before insert or update position 2
AS
DECLARE VARIABLE DESCRICAO VARCHAR(100);
BEGIN
    FOR
        SELECT
           DESCRICAO

        FROM TBREGIAO T
        WHERE T.UF = NEW.UF
        AND T.CIDADE = NEW.CIDADE
        AND T.ID <> NEW.ID

    INTO
    :DESCRICAO
    DO BEGIN
        EXCEPTION "..." 'ESTA CIDADE E BAIRRO JÁ ESTÃO VINCULADOS A UMA REGIÃO';
    END

END;

