No contexto do PostgreSQL, analise o comando a seguir. CREATE TABLE TESTE ( C0 SERIAL PRIMARY KEY, C1 TEXT NOT NULL, C2 CHAR(50), C3 REAL ); Assinale a forma de preenchimento automático da coluna C0.
- A)Código hash do conteúdo corrente de cada linha da tabela.
Errada, porque hash do conteúdo da linha não é o comportamento do tipo SERIAL no PostgreSQL.
- B)Código randômico de 64 bytes.
Errada, porque SERIAL não gera valor randômico, e sim um inteiro sequencial.
- C)Número inteiro autoincrementado.
Certa, pois SERIAL cria um inteiro autoincrementado por meio de sequence.
- D)Registro de tempo (timestamp) da inserção do registro.
Errada, porque timestamp de inserção é outro tipo de dado/comportamento, não SERIAL.
- E)Registro de tempo (timestamp) da última atualização do registro.
Errada, porque timestamp de atualização se relaciona a controle temporal, não a preenchimento automático de SERIAL.
Gabarito: C
No PostgreSQL, a palavra-chave SERIAL indica um campo inteiro com preenchimento automático. Na prática, o banco cria uma sequência associada à coluna e usa esse mecanismo para gerar valores novos a cada inserção. Por isso, quando voce vê `C0 SERIAL PRIMARY KEY`, pense em um número que vai subindo sozinho, sem precisar digitar manualmente. Esse recurso é muito usado para chaves primárias, porque facilita a criação de identificadores únicos e simples. O PostgreSQL historicamente trata `SERIAL` como um atalho para `integer` + sequence + `DEFAULT nextval(...)`. Ou seja, não é um tipo mágico de timestamp nem um valor aleatório, e muito menos hash. Logo, o gabarito C está correto porque a coluna C0 terá um número inteiro autoincrementado. A combinação com `PRIMARY KEY` reforça a ideia de identificador único da tabela, que costuma ser justamente esse número sequencial. É o famoso “deixa o banco numerar para voce”.