logo

Série PostgreSQL

Nesta seção, vamos entender o funcionamento de Série PostgreSQL pseudotipo, que nos permite definir colunas de incremento automático em tabelas. E também vemos exemplos do Pseudotipo serial do PostgreSQL .

O que é o pseudotipo PostgreSQL Serial?

No PostgreSQL, temos um tipo específico de gerador de objetos de banco de dados conhecido como Serial , que é usado para crie uma sequência de números inteiros que são freqüentemente usados ​​como Chave primária em uma mesa.

A sequência pode ser gerada com a ajuda do Pseudotipo SERIAL , enquanto criamos uma nova tabela, como podemos ver no seguinte comando:

 CREATE TABLE table_name( ID SERIAL ); 

O PostgreSQL faz o seguinte se fornecermos o Pseudotipo SERIAL para o EU IA coluna:

  • Primeiramente, o PostgreSQL criará um objeto de sequência e então estabelecerá o próximo valor criado pela sequência como o valor pré-definido da coluna específica.
  • Depois disso, o PostgreSQL irá aprimorar um Restrição NOT NULL para o Coluna de ID uma vez que uma sequência sempre produz um número inteiro que é um valor não nulo .
  • Por fim, o PostgreSQL fornecerá o proprietário da sequência ao Coluna ID; como saída, o objeto de sequência é removido quando a tabela ou Coluna de ID caiu.

Nota: Podemos usar ambos os comandos para especificar o pseudotipo Serial, pois os comandos abaixo são semelhantes entre si.

 CREATE TABLE table_name( ID SERIAL ); 

 CREATE SEQUENCE table_name_ID_seq; CREATE TABLE table_name ( ID integer NOT NULL DEFAULT nextval('table_name_ID_seq') ); ALTER SEQUENCE table_name_ID_seq OWNED BY table_name.ID; 

O Pseudotipo serial do PostgreSQL foi classificado em três tipos, que são os seguintes:

    PEQUENA SÉRIE SERIAL GRANDE SÉRIE

Temos a tabela a seguir, que contém todos os Pseudotipo serial especificação que é suportada pelo PostgreSQL:

Nome Tamanho de armazenamento Faixa
PEQUENA SÉRIE 2 bytes 1 a 32767
SERIAL 4 bytes 1 a 2147483647
GRANDE SÉRIE 8 bytes 1 a 9223372036854775807

Sintaxe do pseudotipo PostgreSQL Serial

A sintaxe do PostgreSQL Pseudotipo serial do seguinte modo:

 variable_name SERIAL 

Exemplos de tipo SERIAL PostgreSQL

Vejamos diferentes exemplos para entender como o O pseudo tipo PostgreSQL Serial funciona .

Nota: Podemos definir a restrição PRIMARY KEY para a coluna SERIAL porque o tipo SERIAL não cria indiretamente um índice na coluna ou torna a coluna a coluna de chave primária.

Estamos criando uma nova tabela com a ajuda do comando CREATE e inserindo alguns valores usando o comando INSERT.

No exemplo abaixo, estamos usando o CRIAR comando para gerar um Carros mesa para o Banco de dados da organização:

modelos de aprendizado de máquina
 CREATE TABLE Cars( Car_id SERIAL PRIMARY KEY, Car_name VARCHAR NOT NULL, Car_model VARCHAR NOT NULL ); 

Saída

O Carros a tabela foi criada com sucesso após a execução dos comandos acima, conforme mostrado na imagem abaixo:

Série PostgreSQL

Uma vez o Carros tabela foi gerada, podemos inserir alguns valores nela usando o comando INSERT. E podemos usar o PADRÃO palavra-chave no comando INSERT ou omitir o nome da coluna (Car_id) .

 INSERT INTO Cars(Car_name, Car_model) VALUES('Porche','911 Carrera'); 

Saída

Após implementar o comando acima, receberemos a seguinte mensagem, e o valor foi inserido com sucesso no Carros mesa:

Série PostgreSQL

OU Usando o Palavra-chave PADRÃO com o nome da coluna (Car_id):

 INSERT INTO Cars(Car_id, Car_name, Car_model) VALUES(DEFAULT,'Audi','A8'); 

Saída

Ao implementar o comando acima, receberemos a seguinte mensagem; o valor foi inserido com sucesso no Carros mesa:

Série PostgreSQL

Como podemos ver na imagem acima, o PostgreSQL inseriu duas linhas no Carros mesa com o ID_do_carro os valores da coluna são 1 e 2 .

Depois de criar e inserir o Carros valores da tabela, usaremos o SELECIONAR comando retorna todas as linhas do Carros mesa:

 SELECT * FROM Cars; 

Saída

Após implementar com sucesso o comando acima, obteremos o seguinte resultado:

Série PostgreSQL

Podemos usar o pg_get_serial_sequence() função para obter o nome da sequência de um SERIAL coluna em uma tabela especificada, como podemos ver na sintaxe abaixo:

 pg_get_serial_sequence('table_name','column_name') 

Para obter o valor atual criado pela sequência, podemos passar um nome de sequência para a função currval().

No exemplo a seguir, usamos o currval() função para retornar o valor atual produzido pelo Carros mesa Car_id_seq objeto:

 SELECT currval(pg_get_serial_sequence('Cars', 'car_id')); 

Saída

java convertendo inteiro em string

Após implementar o comando acima, obteremos a saída abaixo:

Série PostgreSQL

Podemos usar o RETORNANDO Car_id cláusula no comando INSERT se quisermos obter os valores criados pela sequência quando inserirmos uma nova linha na tabela.

O comando abaixo é usado para inserir uma nova linha no Carros tabela e retorna os registros gerados para a ID_do_carro coluna.

 INSERT INTO Cars(Car_name,Car_model) VALUES('Jaguar', 'XK') RETURNING Car_id; 

Saída

Ao executar o comando acima, obteremos a seguinte saída, que retorna o ID_do_carro como 3 :

Série PostgreSQL

Observação:

  • Como entendemos acima, o gerador de sequência a operação não é segura para transações, o que implica que cada usuário obterá um valor diferente se dois bancos de dados paralelos conexões tentam obter o próximo valor de uma sequência.
  • E o número de sequência desse usuário ficará ocioso e criará uma lacuna na sequência se um usuário pode reverter a transação .

Exemplo2

Vejamos mais um exemplo para aprender o Pseudotipo serial em detalhe.

Então, vamos criar outra nova tabela como Vegetais tabela com a ajuda do comando CREATE em um similar base de dados aquilo é Organização com o Veg_id coluna como o SERIAL pseudo-tipo.

 CREATE TABLE Vegetables( Veggie_id SERIAL PRIMARY KEY, Veggie_name VARCHAR NOT NULL, Veggie_seasons VARCHAR NOT NULL ); 

Saída

O Vegetais a tabela foi criada com sucesso após a execução dos comandos acima, conforme mostrado na imagem abaixo:

Série PostgreSQL

Uma vez o Vegetais tabela foi gerada, inseriremos alguns valores nela usando o comando INSERT e omitiremos o Vegetais_id coluna conforme mostrado no comando abaixo:

 INSERT INTO Vegetables(Veggie_name,Veggie_seasons) VALUES('Broccoli','Spring'); 

Saída

Receberemos a seguinte mensagem ao implementar o comando acima: o valor foi inserido com sucesso no Vegetais mesa.

Série PostgreSQL

Ou também podemos usar o Padrão palavra-chave e usa o Veggie_id coluna conforme mostrado no seguinte comando:

 INSERT INTO Vegetables (Veggie_id,Veggie_seasons, Veggie_seasons) VALUES(DEFAULT, 'Sweet Potatoes','Winter'); 

Saída

Após executar o comando acima, receberemos a mensagem abaixo, que diz que podemos usar o Palavra-chave padrão ou o ignore o nome da coluna , obteremos uma saída semelhante:

Série PostgreSQL

Portanto, adicionaremos mais alguns valores ao Carros tabela com a ajuda de seguir o comando:

 INSERT INTO Vegetables(Veggie_name,Veggie_seasons) VALUES('Jalapeno Peppers','Fall'), ('Cucumbers','Summer'), ('Winter Squash','Winter'), ('Snow Peas','Spring'), ('Black Radish','All seasons'), ('Pumpkin','Fall'); 

Saída

Após executar o comando acima, receberemos a mensagem abaixo, que mostra que o valor foi inserido com sucesso no Vegetais mesa.

Série PostgreSQL

Depois de criar e inserir o Vegetais valores da tabela, usaremos o SELECIONAR comando para retornar todas as linhas do Vegetais mesa:

 SELECT * FROM Vegetables; 

Saída

Após implementar com sucesso o comando acima, obteremos a saída abaixo:

Série PostgreSQL

Visão geral

No Pseudotipo serial do PostgreSQL seção, aprendemos a funcionalidade do pseudotipo serial, que é usada principalmente para criar um aumentos automáticos valor da coluna para uma tabela específica.