Sintaxe:
A sintaxe geral para criar a chave primária de incremento automático é a seguinte:
>>CRIAR TABELA nome_tabela( Eu iriaSERIAL);
Vamos agora dar uma olhada na declaração CREATE TABLE em mais detalhes:
- O PostgreSQL gera primeiro uma entidade de série. Ele produz o próximo valor na série e o define como o valor de referência padrão do campo.
- O PostgreSQL aplica a restrição implícita NOT NULL a um campo de id, pois uma série produz valores numéricos.
- O campo id será alocado como titular da série. Se o campo id ou a própria tabela forem omitidos, a sequência será descartada.
Para obter o conceito de incremento automático, certifique-se de que o PostgreSQL esteja montado e configurado em seu sistema antes de continuar com as ilustrações neste guia. Abra o shell da linha de comando do PostgreSQL na área de trabalho. Adicione o nome do servidor no qual deseja trabalhar, caso contrário, deixe-o como padrão. Escreva o nome do banco de dados que está no servidor no qual deseja trabalhar. Se você não quiser alterá-lo, deixe-o como padrão. Estaremos usando o banco de dados de teste, é por isso que o adicionamos. Você também pode trabalhar na porta padrão 5432, mas também pode alterá-la. No final, você deve fornecer o nome de usuário para o banco de dados que você escolher. Deixe como padrão se você não quiser alterá-lo. Digite sua senha para o nome de usuário selecionado e pressione Enter no teclado para começar a usar o shell de comando.
Usando a palavra-chave SERIAL como tipo de dados:
Quando criamos uma tabela, geralmente não adicionamos a palavra-chave SERIAL no campo da coluna primária. Isso significa que temos que adicionar os valores à coluna da chave primária enquanto usamos a instrução INSERT. Mas quando usamos a palavra-chave SERIAL em nossa consulta ao criar uma tabela, não devemos precisar adicionar valores de coluna primária ao inserir os valores. Vamos dar uma olhada nisso.
Exemplo 01:
Crie um teste de tabela com duas colunas id e nome. O id da coluna foi definido como a coluna de chave primária, pois seu tipo de dados é SERIAL. Por outro lado, o nome da coluna é definido como o tipo de dados TEXT NOT NULL. Experimente o comando abaixo para criar uma tabela e a tabela será criada de forma eficiente como pode ser visto na imagem abaixo.
>>Teste CRIAR TABELA( Eu iriaCHAVE PRIMÁRIA SERIAL, nome TEXTO NÃO NULO);
Vamos inserir alguns valores no nome da coluna da tabela recém-criada TEST. Não adicionaremos nenhum valor ao id da coluna. Você pode ver que os valores foram inseridos com sucesso usando o comando INSERT conforme indicado abaixo.
>>INSERT INTO Test(nome)VALORES(‘Aqsa’),('Rimsha'),(‘Khan’);
É hora de verificar os registros da tabela ‘Teste’. Experimente a instrução SELECT abaixo no shell de comando.
>>SELECIONE*FROM Test;A partir da saída abaixo, você pode notar que o id da coluna possui automaticamente alguns valores, embora não tenhamos adicionado nenhum valor do comando INSERT por causa do tipo de dados SERIAL que especificamos para o id da coluna. É assim que o tipo de dados SERIAL funciona por conta própria.
Exemplo 02:
Outra maneira de verificar o valor da coluna do tipo de dados SERIAL é usando a palavra-chave RETURNING no comando INSERT. A declaração abaixo cria uma nova linha na tabela Teste e produz o valor para o campo id:
>>INSERT INTO Test(nome)VALORES('Hassam')RETORNANDOEu iria;
Verificando os registros da tabela Teste usando a consulta SELECT, obtivemos o resultado abaixo conforme mostrado na imagem. O quinto registro foi adicionado de forma eficiente à tabela.
>>SELECIONE*FROM Test;
Exemplo 03:
A versão alternativa da consulta de inserção acima está usando a palavra-chave DEFAULT. Estaremos usando o nome do id da coluna no comando INSERT, e na seção VALUES, daremos a palavra-chave DEFAULT como seu valor. A consulta abaixo funcionará da mesma forma na execução.
>>INSERT INTO Test(Eu iria, nome)VALORES(DEFAULT, ‘Race’);
Vamos verificar a tabela novamente usando a consulta SELECT da seguinte maneira:
>>SELECIONE*FROM Test;Você pode ver na saída abaixo, o novo valor foi adicionado enquanto o id da coluna foi incrementado por padrão.
Exemplo 04:
O número de seqüência do campo da coluna SERIAL pode ser encontrado em uma tabela no PostgreSQL. O método pg_get_serial_sequence () é usado para fazer isso. Temos que usar a função currval () junto com o método pg_get_serial_sequence (). Nesta consulta, estaremos fornecendo o nome da tabela e seu nome de coluna SERIAL nos parâmetros da função pg_get_serial_sequence (). Como você pode ver, especificamos o teste da tabela e o id da coluna. Este método é usado no exemplo de consulta abaixo:
>>SELECT currval(pg_get_serial_sequence('Teste', 'Eu iria'));É importante notar que nossa função currval () nos ajuda a extrair o valor mais recente da sequência, que é 5. A imagem abaixo é uma ilustração de como o desempenho poderia ser.
Conclusão:
Neste tutorial do guia, demonstramos como usar o pseudo-tipo SERIAL para autoincremento no PostgreSQL. Usando uma série no PostgreSQL, é simples construir um conjunto de números de autoincremento. Com sorte, você poderá aplicar o campo SERIAL às descrições da tabela usando nossas ilustrações como referência.