Cópia PostgreSQL de Stdin

Cópia PostgreSQL de Stdin
PostgreSQL, como outros sistemas de gerenciamento de banco de dados, suporta os fluxos padrão. Esses fluxos são responsáveis ​​por manipular dados para armazenamento no PostgreSQL. Estes são os canais de comunicação de entrada e saída entre o aplicativo e o ambiente criado no momento da execução.

Sempre que executamos um comando no PostgreSQL, os fluxos fazem a conexão com o terminal de texto onde o PSQL (Shell) está executando. No entanto, no caso de herança, o processo de cada criança herda os fluxos do processo pai. Nem todo programa precisa que esses fluxos sejam introduzidos no código, algumas funções como getchar () e putchar () use os fluxos de entrada e saída automaticamente. Fluxos estão na categoria de 3.

Stdin: É um fluxo de entrada padrão. É usado onde o programa lê os dados de entrada.

Stdout: Isso implica o fluxo de saída padrão usado quando o aplicativo grava os dados (saída) no arquivo.

Stderr: Este fluxo refere -se aos erros no aplicativo. Isso é usado para exibir ou notificar o usuário sobre a ocorrência de um erro durante a execução.

A sintaxe comum para esses três tipos é:

Arquivo *stdin;
Arquivo *stdout;
Arquivo *stderr;

A entrada padrão é lida pelo dispositivo de entrada "teclado", enquanto a saída padrão e os erros padrão são exibidos na tela do monitor de dispositivo de saída. Os dois primeiros fluxos são usados ​​para buscar e exibir os dados em palavras simples, mas o terceiro é usado principalmente quando precisamos diagnosticar os erros. Estou falando sobre manuseio de exceções em linguagens de programação.

Entrada padrão (stdin):

Ao criar um código -fonte, a maioria das funções depende do fluxo de stdin para o recurso de entrada. Mas alguns programas como os programas DIR e LS não exigem essa funcionalidade, pois recebem os argumentos da linha de comando. Essa situação acontece quando o programa se baseia no sistema para a entrada, mas não interage com o usuário. Por exemplo, os programas relacionados ao diretório e os caminhos não exigem entrada para serem executados.

Cada arquivo que está sob o processo de execução é alocado com um número único pelo sistema. Isso é chamado de descritor de arquivo. Para a entrada padrão, o valor do descritor de arquivo é "0". Na linguagem de programação C, o descritor de arquivo possui arquivo variável * stdin, da mesma forma para a linguagem C ++. A variável é definida como std :: CIN.

Stdin em PostgreSQL

Após a instalação e configuração do banco de dados, para a conectividade com o servidor, você precisa fornecer uma senha para prosseguir. Essas medidas são para a autenticação do usuário.

Copie dados de stdin para uma tabela

Para reconhecer o mecanismo de stdin, precisamos criar uma mesa fictícia. Para que possamos ler e copiar os dados de um arquivo para outro incorporando stdin.

>> Criar escola de tabela (id int, nome Varchar (10), endereço Varchar (20), Assunto Varchar (20));

Depois que a tabela for criada, adicionaremos os valores na tabela usando um comando inserir. Adicione alguns dados de amostra em poucas linhas, o descanso será adicionado usando "stdin".

>> Insira nos valores escolares (1, 'Ahmad', 'Lahore', 'Sciences'), (2, 'Shazain', 'Islamabad', 'Arts'), (3, 'Zain', 'Karachi', ' ciências ');

Além da declaração "Inserir", existe uma alternativa para carregar os valores na tabela. Isso é através de "stdin". No PostgreSQL, inserimos dados na tabela do terminal em termos de linha usando um delimitador. Este delimitador é um separador entre os valores de duas colunas de uma linha. Este delimitador pode ser um espaço, vírgula ou um espaço em branco em qualquer caso. Mas usando um delimitador como stdin, recomenda-se CSV (valores separados por vírgula). E nenhum outro símbolo é referido aqui. Uma palavra -chave 'cópia' é usada que copiará os dados da tela PSQL para a tabela, particularmente.

>> Copie a escola de Stdin (delimitador ',');

Quando você usa a consulta, algumas instruções para a colocação de dados são mencionadas aqui. Estes são os pontos para orientar o usuário para que você possa inserir dados corretamente. Cada linha deve ser inserida em uma nova linha.

Vamos passo a passo aqui. Cada valor escrito antes ou entre as vírgulas representa cada coluna. Como, existem 4 colunas, então 4 valores são usados ​​como CSV. Digite a primeira linha e depois pressione a guia.

À medida que uma linha é concluída, você será movido em direção à próxima linha. Não importa quantas linhas você queira adicionar, assim como uma declaração de inserção, todos os dados ilimitados serão colocados dentro da tabela. Voltando ao exemplo, agora escrevemos a segunda fila e prosseguimos para o próximo.

Usamos 2 linhas para demonstrar. A inserção real levará dados até a marca de requisitos. Se você terminar com a adição de linhas na tabela e quiser sair desse mecanismo, certamente usará uma extremidade do arquivo (EOF).

Você precisa encerrar adicionar dados com uma barra de barragem (\) e um período (.) na última linha quando você não deseja adicionar mais linhas.

Agora vamos dar uma olhada em todo o código da consulta para o EOF. No final "cópia 3" indica que 3 linhas são adicionadas à tabela.

Observação: O operador EOF não é adicionado como um símbolo na nova linha da tabela.

Continue adicionando dados através de "stdin" de acordo com o requisito. Você pode verificar os dados que você inseriu através da instrução SELECT.

>> selecione * da escola;

Copie dados de uma tabela para stdin

Se você estiver interessado em copiar os dados em uma tabela da tabela, então usamos Stdin para isso. Não é possível copiar diretamente uma tabela para a outra em PostgreSQL .

Crie uma tabela de amostra para copiar todos os dados da tabela (escola). Deve -se estar ciente de adicionar os dados da coluna, digite semelhante à tabela direcionada.

Agora, adicione os dados desse arquivo usando a mesma instrução stdin de uma cópia. Os dados podem ser os mesmos ou você pode alterá -los adicionando uma nova linha que não estava presente na tabela original.

>> copy school_copy de stdin (delimeter ',')

Use uma instrução SELECT para inserir os dados.

Saída usando stdout em vez de selecionar instrução

Como usamos a alternativa stdin à declaração de inserção. Da mesma forma, o stdout é usado no local da instrução SELECT. A representação não está na forma de uma tabela. Para o objetivo de saída, o delimitador usado é "|". Este delimitador é colocado automaticamente entre as colunas em cada linha.

>> copy school_copy para stdout (delimiter '|');

Surgem de erros enquanto usa delimitadores
Delimitador '|'

Se você usar um delimitador '|' Na substituição do CSV, causará um erro. Isso não copiará os dados do terminal e causa um erro de sintaxe.

Conclusão

'Cópia PostGresql de Stdin' auxilia na duplicação de dados de uma tabela para outra. Neste artigo, primeiro lhe damos uma introdução de fluxos padrão, Stdin, está funcionando, teoricamente seguido pela breve explicação dos exemplos. Uma vantagem competitiva do stdin sobre a declaração de inserção é que, se uma linha for ignorada por copiar dados, podemos adicioná -los entre as linhas existentes. Com a orientação deste tutorial, você poderá copiar o conteúdo das tabelas.