Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Auto incremento de dados nos campos da tabela

Ola pessoal,

Durante um INSERT, é obrigatório mencionarmos o campo da tabela cujo campo possui auto incremento como n ocaso do campo ID da tabela COMPRAS?

A forma correta com a qual se utiliza:

CREATE TABLE COMPRAS (
    ID NUMBER PRIMARY KEY,
    VALOR NUMBER,
    DATA DATE,
    OBSERVACOES VARCHAR2(30),
    RECEBIDO CHAR check (recebido in (0,1))
);
CREATE SEQUENCE ID_SEQ;

insert into COMPRAS (id, valor, data, observacoes, recebido) values (id_seq.nextval, 200, '19-FEV-2008', 'MATERIAL ESCOLAR', '1');

Forma testada a qual não funcionou:

insert into COMPRAS (valor, data, observacoes, recebido) values (200, '19-FEV-2008', 'MATERIAL ESCOLAR', '1');

Aqui, o campo que é auto-incremento não foi declarado tanto na declaração dos campos quanto na declaração dos valores(values(......', '.....', '.....').

Em outras palavras, existe alguma maneira de 'ignorar' o campo dentro do INSERT que é auto-incrementado ou temos que declarar este campo como consta o exemplo no primeiro INSERT acima conforme o que nos foi passado no curso?

Obrigado

1 resposta
solução!

Boa tarde, O campo id sempre deve ser informado, e no valor deve ser colocado o id_seq.nextval, pois a sequence é um objeto do banco de dados, não fica vinculada ao campo. Espero ter ajudado.