Copia postgresql da stdin

Copia postgresql da stdin
PostgreSQL come altri sistemi di gestione del database supportano i flussi standard. Questi flussi sono responsabili della manipolazione dei dati per l'archiviazione in PostgreSQL. Questi sono i canali di comunicazione input e output tra l'applicazione e l'ambiente che viene creato al momento dell'esecuzione.

Ogni volta che eseguiamo un comando in PostgreSQL, i flussi effettuano la connessione con il terminale di testo in cui è in esecuzione il PSQL (shell). Tuttavia, nel caso dell'eredità, il processo di ogni bambino eredita i flussi dal processo genitore. Non tutti i programmi necessitano che questi flussi vengano introdotti nel codice, alcune funzioni come getchar () e putchar () usano automaticamente i flussi di input e output. I flussi si trovano nella categoria di 3.

Stdin: È un flusso di input standard. Viene utilizzato dove il programma legge i dati di input.

Stdout: Ciò implica il flusso di output standard utilizzato quando l'applicazione scrive i dati (output) nel file.

Stderr: Questo flusso si riferisce agli errori nell'applicazione. Questo viene utilizzato per visualizzare o avvisare all'utente il verificarsi di un errore durante l'esecuzione.

La sintassi comune per questi tre tipi è:

File *stdin;
File *stdout;
File *stderr;

L'ingresso standard viene letto dal dispositivo di input "tastiera", mentre gli errori di uscita standard e standard vengono visualizzati nella schermata del monitor del dispositivo di output. I primi due flussi vengono utilizzati per recuperare e visualizzare i dati in parole semplici, ma il terzo viene utilizzato principalmente quando è necessario diagnosticare gli errori. Sto parlando della gestione delle eccezioni nei linguaggi di programmazione.

Input standard (stdin):

Durante la creazione di un codice sorgente, la maggior parte delle funzioni dipende dal flusso STDIN per la funzione di input. Ma alcuni programmi come i programmi DIR e LS non richiedono questa funzionalità, poiché prendono gli argomenti della linea di comando. Questa situazione si verifica quando il programma si basa sul sistema per l'input ma non interagisce con l'utente. Ad esempio, i programmi relativi alla directory e ai percorsi non richiedono input per essere eseguiti.

Ogni file che è in fase di esecuzione è assegnato con un numero univoco dal sistema. Questo è chiamato descrittore di file. Per l'input standard, il valore del descrittore di file è "0". Nel linguaggio di programmazione C, il descrittore di file ha file variabili * stdin, allo stesso modo per il linguaggio c ++. La variabile è definita come std :: CIN.

Stdin in Postgresql

Dopo l'installazione e la configurazione del database, per la connettività con il server, è necessario fornire una password per procedere ulteriormente. Queste misure sono per l'autenticazione dell'utente.

Copia i dati da stdin a una tabella

Per riconoscere il meccanismo di Stdin, dobbiamo creare una tabella fittizia. In modo che possiamo leggere e copiare i dati da un file a un altro incorporando stdin.

>> Crea Table School (Id Int, Name Varchar (10), Indirizzo Varchar (20), Soggetto Varchar (20));

Una volta creata la tabella, aggiungeremo i valori nella tabella utilizzando un comando insert. Aggiungi alcuni dati di esempio in poche righe, il riposo verrà aggiunto utilizzando "stdin".

>> inserisci nei valori scolastici (1, "Ahmad", "Lahore", "Sciences"), (2, "Shazain", "Islamabad", "Arts"), (3, "Zain", "Karachi", " scienze ');

Oltre all'istruzione "inserisci", esiste un'alternativa per caricare i valori nella tabella. Questo è attraverso "stdin". In PostgreSQL, inseriamo i dati nella tabella dal terminale in termini di riga utilizzando un delimitatore. Questo delimitatore è un separatore tra i valori di due colonne di riga. Questo delimitatore può essere uno spazio, una virgola o uno spazio vuoto in ogni caso. Ma utilizzando un delimitatore come stdin, si consiglia CSV (valori separati da virgola). E nessun altro simbolo viene indicato qui. Viene utilizzata una parola chiave "copia" che copierà i dati dalla schermata PSQL nella tabella in particolare.

>> copia la scuola da stdin (delimitatore ',');

Quando si utilizza la query, alcune istruzioni per il posizionamento dei dati vengono menzionate qui. Questi sono i punti per guidare l'utente in modo da essere in grado di inserire correttamente i dati. Ogni riga dovrebbe essere inserita in una nuova riga.

Andremo passo dopo passo qui. Ogni valore scritto prima o tra le virgole rappresenta ogni colonna. Come, ci sono 4 colonne, quindi 4 valori vengono utilizzati come CSV. Immettere la prima riga e quindi premere la scheda.

Man mano che una riga è completata, verrai quindi spostato verso la riga successiva. Non importa quante righe vuoi aggiungere, proprio come un'istruzione Insert, tutti i dati illimitati verranno inseriti all'interno della tabella. Tornando all'esempio, ora abbiamo scritto la seconda riga e procediamo per il prossimo.

Abbiamo usato 2 file per dimostrare. L'inserimento effettivo porterà i dati fino al marchio del requisito. Se hai finito con l'aggiunta di righe nella tabella e vuoi lasciare questo meccanismo, utilizzerai sicuramente una fine del file (EOF).

È necessario concludere l'aggiunta di dati con un backslash (\) e un periodo (.) all'ultima riga quando non si desidera aggiungere ulteriori righe.

Ora diamo uno sguardo finalizzato sull'intero codice dalla query all'EOF. Alla fine "Copia 3" indica che 3 righe vengono aggiunte alla tabella.

Nota: L'operatore EOF non viene aggiunto come simbolo nella nuova riga della tabella.

Continua ad aggiungere dati tramite "stdin" in base al requisito. È possibile controllare i dati inseriti tramite l'istruzione Select.

>> seleziona * da scuola;

Copia i dati da una tabella a stdin

Se sei interessato a copiare i dati in una tabella dalla tabella, allora utilizziamo stdin per questo. Non è possibile copiare direttamente una tabella nell'altra in PostgreSQL .

Crea una tabella di esempio per copiare tutti i dati dalla tabella (scuola). Si dovrebbe essere a conoscenza dell'aggiunta dei dati della colonna, tipo simile alla tabella mirata.

Ora aggiungi i dati di quel file utilizzando la stessa istruzione stdin di una copia. I dati possono essere gli stessi o puoi modificarli aggiungendo una nuova riga che non era presente nella tabella originale.

>> copia School_Copy da stdin (delimetro ",")

Utilizzare un'istruzione Select per inserire i dati.

Output utilizzando stdout anziché istruzione seleziona

Mentre usiamo la stdin alternativa all'istruzione insert. Allo stesso modo, stdout viene utilizzato nel luogo dell'istruzione selezionata. La rappresentazione non è sotto forma di una tabella. Ai fini dell'output, il delimitatore utilizzato è "|". Questo delimitatore viene automaticamente posizionato tra le colonne in ogni riga.

>> copia School_Copy su stdout (delimitatore '|');

Insorgere di errori durante l'utilizzo dei delimitatori
Delimitatore '|'

Se usi un delimitatore '|' In sostituzione di CSV, causerà un errore. Ciò non copierà i dati dal terminale e provoca un errore di sintassi.

Conclusione

'PostgreSQL Copia da stdin' aiuta a duplicare i dati di una tabella a un'altra. In questo articolo, ti abbiamo prima fornito un'introduzione di flussi standard, Stdin, funziona, teoricamente seguiti dalla breve spiegazione degli esempi. Un vantaggio competitivo di Stdin Over Insert Dichiarazione è che, se una riga viene saltata per errore durante la copia dei dati, possiamo aggiungerli tra le righe esistenti. Con la guida di questo tutorial, sarai in grado di copiare il contenuto delle tabelle.