Considere os seguintes trechos de SQL para bancos de dados O...
create table test (id number, testdata varchar2(255));
create sequence test_seq
start with 1
increment by 1
nomaxvalue;
create trigger test_trigger
before insert on test
for each row
begin
select test_seq.nextval into :new.id from dual;
end;
O propósito destes comandos é obter um autoincremento da coluna id presente na tabela test. Em sistemas de bancos de dados PostgreSQL, o autoincremento pode ser obtido com a utilização de um tipo de dado criado por conveniência, chamado
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: A - SERIAL.
Para compreender a questão, é essencial conhecer os recursos de autoincremento disponíveis em diferentes sistemas de gerenciamento de banco de dados (SGBD). O autoincremento é uma funcionalidade que gera automaticamente um valor único e sequencial para uma coluna em uma tabela, geralmente utilizada em chaves primárias.
No contexto do Oracle, são usados uma sequência (CREATE SEQUENCE) e um gatilho (CREATE TRIGGER) para simular o comportamento de autoincremento. A sequência gera números sequenciais e o gatilho insere automaticamente o próximo valor da sequência na coluna id antes de cada inserção na tabela test.
Já no PostgreSQL, o mesmo resultado é obtido de maneira mais conveniente e direta através do tipo de dado SERIAL. Ao definir uma coluna como SERIAL, o PostgreSQL automaticamente cria uma sequência associada à coluna e preenche a coluna com um valor sequencial a cada nova inserção, eliminando a necessidade de criar explicitamente uma sequência e um gatilho como no Oracle.
A escolha da alternativa correta envolve a compreensão dessa diferença entre os SGBDs e o conhecimento específico de que o PostgreSQL utiliza o tipo SERIAL para a criação de colunas com autoincremento.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
o auto incremento em postgresql é serial emsql é auto_increment
Colunas de autonumeração
Oracle - sequence
SQL Server - identity
PostgreSQL - serial
MySQL - auto_increment
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo