Insira a linha se os valores ainda não existirem no Postgresl

Insert Row If Values Don T Already Exist Postgresl



Conhecer e manipular sistemas de gerenciamento de banco de dados nos familiarizou com as alterações nos bancos de dados. O que normalmente envolve a criação, inserção, atualização e exclusão de funções aplicadas em tabelas específicas. No artigo atual, veremos como os dados são gerenciados pelo método de inserção. Devemos ter que criar uma tabela na qual queremos inserção. A instrução Insert é usada para adicionar novos dados em linhas de tabelas. O PostgreSQL insere a instrução cobre algumas regras para a execução bem-sucedida de uma consulta. Em primeiro lugar, temos que mencionar o nome da tabela seguido pelos nomes das colunas (atributos) onde queremos inserir as linhas. Em segundo lugar, devemos inserir os valores, separados por vírgula após a cláusula VALUE. Finalmente, cada valor deve estar na mesma ordem em que a sequência de listas de atributos é fornecida durante a criação de uma tabela específica.

Sintaxe

>> INSERIR EMNOME DA TABELA(coluna1,coluna) VALORES (‘Valor1’, ‘valor2’);

Aqui, uma coluna são os atributos da tabela. A palavra-chave VALUE é usada para inserir valores. ‘Valor’ são os dados das tabelas a serem inseridas.







Inserindo funções de linha no shell PostgreSQL (psql)

Após a instalação bem-sucedida do postgresql, inseriremos o nome do banco de dados, o número da porta e a senha. O Psql será iniciado. Em seguida, realizaremos consultas respectivamente.





Exemplo 1: Usando INSERT para adicionar novos registros às tabelas
Seguindo a sintaxe, criaremos a consulta a seguir. Para inserir uma linha na tabela, criaremos uma tabela chamada cliente. A respectiva tabela contém 3 colunas. O tipo de dados de colunas específicas deve ser mencionado para inserir dados nessa coluna e evitar redundância. A consulta para criar uma tabela é:





>> Criar tabelacliente(Eu iriaint,nome varchar (40), paísvarchar (40));

Depois de criar a tabela, iremos inserir dados inserindo linhas manualmente em consultas separadas. Em primeiro lugar, mencionamos o nome da coluna para manter a precisão dos dados em colunas particulares com relação aos atributos. E então, os valores serão inseridos. Os valores são codificados por vírgulas simples, pois devem ser inseridos sem qualquer alteração.



>> inserir emcliente(Eu iria,nome, país) valores ('1',‘Alia’, ‘Paquistão’);

Após cada inserção bem-sucedida, a saída será 0 1, o que significa que 1 linha é inserida por vez. Na consulta mencionada anteriormente, inserimos dados 4 vezes. Para visualizar os resultados, usaremos a seguinte consulta:

>> selecionar*a partir decliente;

Exemplo 2: Usando a instrução INSERT para adicionar várias linhas em uma única consulta
A mesma abordagem é usada na inserção de dados, mas não na introdução de instruções de inserção muitas vezes. Vamos inserir os dados de uma vez usando uma determinada consulta; todos os valores de uma linha são separados por Ao usar a consulta a seguir, obteremos a saída necessária

Exemplo 3: INSERT várias linhas em uma tabela com base em números em outra tabela
Este exemplo está relacionado à inserção de dados de uma tabela em outra. Considere duas tabelas, a e b. A Tabela a possui 2 atributos, ou seja, nome e classe. Aplicando uma consulta CREATE, apresentaremos uma tabela. Após a criação da tabela, os dados serão inseridos por meio de uma consulta de inserção.

>> Criar tabelapara(nome varchar (30),classe varchar (40));
>> Inserir emparavalores (‘Amna’,1),('bhishma', '2'),(‘Javed’, ’3'),('Baixa',4');

Quatro valores são inseridos na tabela usando a teoria do excedente. Podemos verificar usando instruções select.

Da mesma forma, criaremos a tabela b, com atributos de todos os nomes e assuntos. As mesmas 2 consultas serão aplicadas para inserir e buscar o registro da tabela correspondente.

>> Criar tabelab(allnames varchar(30), assunto varchar(70));

Obtenha o registro pela teoria selecionada.

>> selecionar*a partir deb;

Para inserir valores de tabela b na tabela, usaremos a seguinte consulta. Esta consulta funcionará de forma que todos os nomes na tabela b será inserido na tabela para com a contagem dos números que mostram o número de ocorrências de um determinado número na respectiva coluna da tabela b . b.allnames representa a função do objeto para especificar a tabela. A função Count (b.allnames) funciona para contar a ocorrência total. Como todo nome ocorre ao mesmo tempo, a coluna resultante terá 1 número.

>> Inserir empara(nome,classe) selecionarb.allnames, contar(b.allnames) a partir debgrupo porb.allnames;

Exemplo 4: INSERT dados em linhas se não existir
Esta consulta é usada para inserir linhas, se não estiver presente. Em primeiro lugar, a consulta fornecida verifica se a linha já está presente ou não. Se já existir, os dados não serão adicionados. E se os dados não estiverem presentes em uma linha, a nova inserção será realizada. Aqui, tmp é uma variável temporária usada para armazenar dados por algum tempo.

>> inserir emb(todos os nomes, assunto) selecionar*a partir de (selecionar‘Kinza’Comoallnames, 'islamiat'Comosujeito) ComotmpOnde não existe ( selecionarallnamesa partir debOndeallnames=‘Sundus’limite 1);

Exemplo 5: PostgreSQL Upsert usando a instrução INSERT
Esta função possui duas variedades:

  • Atualização: se ocorrer um conflito, se o registro corresponder aos dados existentes na tabela, ele será atualizado com novos dados.
  • Se ocorrer um conflito, não faça nada : Se um registro corresponder aos dados existentes na tabela, ele ignorará o registro ou, se for encontrado um erro, ele também será ignorado.

Inicialmente, formaremos uma tabela com alguns dados de amostra.

>> CRIAR TABELAtbl2(EU IRIAINT PRIMÁRIO CHAVE,Nome VARIAÇÃO DE CARÁTER);

Depois de criar a tabela, inseriremos os dados no tbl2 usando a consulta:

>> INSERIR EMtbl2VALORES (1,'uzma'),(2,'abdul'),(3,'Hamna'),(4,'fatima'),(5,'shiza'),(6,'javeria');

Se ocorrer um conflito, atualize:

>>INSERIR EMtbl2VALORES (8,'Andar de') SOBRECONFLITO(EU IRIA) FAZ ATUALIZAR DEFINIR Nome=Excluído.Nome;

A princípio, inseriremos os dados usando a consulta de conflito de id 8 e o nome Rida. A mesma consulta será usada seguindo o mesmo id; o nome será alterado. Agora você notará como os nomes serão alterados no mesmo id na tabela.

>> INSERIR EMtbl2VALORES (8,'Trabalhar') SOBRECONFLITO(EU IRIA) FAZ ATUALIZAR DEFINIR Nome =Excluído.Nome;

Descobrimos que havia um conflito no id 8, então a linha especificada foi atualizada.

Se ocorrer um conflito, não faça nada

>> INSERIR EMtbl2VALORES (9,'Hira') SOBRECONFLITO(EU IRIA) FAZ NADA;

Usando esta consulta, uma nova linha é inserida. Depois disso, usaremos se a mesma consulta para ver o conflito ocorrido.

>>INSERIR EMtbl2VALORES (9,'Hira') SOBRECONFLITO(EU IRIA) FAZ NADA;

De acordo com a imagem acima, você verá que após a execução da consulta INSERT 0 0 mostra que nenhum dado foi inserido.

Conclusão

Vislumbramos o conceito de compreensão da inserção de linhas em tabelas onde os dados não estão presentes ou a inserção não é concluída, se algum registro for encontrado, para reduzir a redundância nas relações do banco de dados.