Fala pessoal td bom???
então estou com uma dúvida aqui, será que alguém pode me ajudar?
o lance é o seguinte!!
como eu faço para restringir o número de gravações em uma tabela?
exemplo? o usuário tem uma tela de cadastro que só pode conter apenas 8 registros. quando passar desse número como eu faço pra barrar isso?
em que trigger eu coloco essa programação???
grato de sua atenção!!
--
Júnior Deathão
Qtde máxima de registros num cadastro...
-
- Rank: Programador Júnior
- Mensagens: 22
- Registrado em: Qua, 06 Jul 2005 11:33 am
- Localização: RJ
Po tu fez a pergunta e deu a resposta.....
Faz na trigger de INSERT cara...
Dentro dela você faz um count e vê quantas tem, se tiver alcançado o limite você da uma mensagem de erro e para a trigger.
Boa sorte ai cara...
Abraços...
Rafael.
Faz na trigger de INSERT cara...
Dentro dela você faz um count e vê quantas tem, se tiver alcançado o limite você da uma mensagem de erro e para a trigger.
Boa sorte ai cara...
Abraços...
Rafael.
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Po cara...eu tava certo que ia dar MUTATING TABLE se ele fizesse count na própria tabela. Eu estava enganado!
Criei a seguinte trigger na tabela T:
Testando!!!
Criei a seguinte trigger na tabela T:
create or replace trigger T_BI
before insert on t
for each row
declare
I NUMBER;
begin
--conta as linhas
SELECT COUNT(1)
INTO I
FROM T;
IF I>=5 THEN
raise_application_error(-20001, 'Não pode ter mais que 5 linhas nessa tabela');
END IF;
end;
Testando!!!
SQL>
SQL> select count(*) from t;
COUNT(*)
----------
3
SQL> insert into t values ('a');
1 row created.
SQL> insert into t values ('a');
1 row created.
SQL> insert into t values ('a');
insert into t values ('a')
*
ERROR at line 1:
ORA-20001: Não pode ter mais que 5 linhas nessa tabela
ORA-06512: at "SCOTT.T_BI", line 10
ORA-04088: error during execution of trigger 'SCOTT.T_BI'
SQL>
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
É que sempre que você faz SELECT na própria tabela DENTRO duma trigger, dá o famoso erro: "Table is mutating".
(acho que é mais quando é uma AFTER INSERT, sei lá... Por isso que eu achei que nesse caso tb ia dar.
(acho que é mais quando é uma AFTER INSERT, sei lá... Por isso que eu achei que nesse caso tb ia dar.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes