Autor
Mensagem
preciso de ajuda para criar uma trigger de auto icrement no campo id_aluno que nao precise digitar nenhum valor
seja automatico:
#Código
CREATE SEQUENCE "ALUNO_NOVO" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE
/
CREATE OR REPLACE
TRIGGER ALUNO_TRIGG BEFORE INSERT ON ALUNO
FOR EACH ROW
BEGIN
<<COLUMN_SEQUENCES>>
BEGIN
IF :NEW.ID_ALUNO IS NULL THEN
SELECT ALUNO_NOVO.NEXTVAL INTO :NEW.ID_ALUNO FROM DUAL;
END IF;
END COLUMN_SEQUENCES;
END;
me ajudem





País: Brasil
Estado: RS
Cidade: Caxias do Sul
Mensagens: 1571
Tente usar este comando. Onde está:
SELECT ALUNO_NOVO.NEXTVAL INTO :NEW.ID_ALUNO FROM DUAL;
Tente
SELECT ROW_NUMBER() OVER (PARTITION BY campo ORDER BY campo) AS IDPARTIDA INTO :NEW.ID_ALUNO FROM DUAL;
Este comando já faz o sequencial sem usar o SEQUENCE.
Onde está o comando PARTITION BY vc pode usar como quebra. Tipo assim:
Filial Sequencial
1 2
1 1
2 3
2 0
2 5
Usando o PARTITION BY ele faz a quebra, assim:
Filial Sequencial
1 1
1 2
2 1
2 2
2 3
Sem o PARTITION BY ele faz o sequencial puro:
Filial Sequencial
1 1
1 2
2 3
2 4
2 5
Att.,
Marco.
SELECT ALUNO_NOVO.NEXTVAL INTO :NEW.ID_ALUNO FROM DUAL;
Tente
SELECT ROW_NUMBER() OVER (PARTITION BY campo ORDER BY campo) AS IDPARTIDA INTO :NEW.ID_ALUNO FROM DUAL;
Este comando já faz o sequencial sem usar o SEQUENCE.
Onde está o comando PARTITION BY vc pode usar como quebra. Tipo assim:
Filial Sequencial
1 2
1 1
2 3
2 0
2 5
Usando o PARTITION BY ele faz a quebra, assim:
Filial Sequencial
1 1
1 2
2 1
2 2
2 3
Sem o PARTITION BY ele faz o sequencial puro:
Filial Sequencial
1 1
1 2
2 3
2 4
2 5
Att.,
Marco.





