Fórum restrição de quantidades de registros via sql #441192

27/04/2013

0

como fazer com que um registro possa ser inserido com determinado nome,determinado numero de vezes

exemplo

a tabela funcionarios so aceita o nome joao ate 25 vezes repetidamente
Edon Ramos

Edon Ramos

Responder

Posts

28/04/2013

Edon Ramos

Galera eu fiz isso aqui


CREATE TRIGGER "LIM_REGISTROS" FOR "PREFEITURA"
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable NTOT integer;
begin
select count(*) from prefeitura where cargoflu='Assessor Diretor Nível VII' into :ntot;
if (:ntot = 2) then
exception lim_registros;


só que quando eu estou cadastrando ele não entende que é só o cargoflu ele coloca a tabela inteira....
Responder

Gostei + 0

01/05/2013

Alvaro Vieira

Segue a rotina que testei, observe que você se esqueceu de colocar a análise "new". testei aqui e só deixou cadastrar 2 registros de cada cargo.
Abraço.


/******************************************************************************/
/****     Following SET SQL DIALECT is just for the Database Comparer      ****/
/******************************************************************************/
SET SQL DIALECT 3;


SET TERM ^ ;



CREATE OR ALTER TRIGGER PREFEITURA_BI0 FOR PREFEITURA
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable ntot integer;
begin
  select count(*)
  from prefeitura
  where cargoflu=new.cargoflu
  into :ntot;

  if (:ntot = 2) then
    exception lim_registros;

end
^


SET TERM ; ^

Responder

Gostei + 0

01/05/2013

Edon Ramos

Sim correto eu tinha conseguido já...
mas ao invés de usar o before se usa o after,pois senão a trigger não volta com o ultimo valor inserido na tabela

;)
Responder

Gostei + 0

06/05/2013

William

Finalizando, qualquer dúvida inicie outro tópico por gentileza!!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar