Εισαγωγή γραμμής εάν οι τιμές δεν υπάρχουν ήδη στο Postgresl

Insert Row If Values Don T Already Exist Postgresl



Η γνώση και ο χειρισμός συστημάτων διαχείρισης βάσεων δεδομένων μας έκαναν εξοικειωμένους με τις αλλαγές σχετικά με τις βάσεις δεδομένων. Αυτό συνήθως περιλαμβάνει τη δημιουργία, εισαγωγή, ενημέρωση και διαγραφή λειτουργιών που εφαρμόζονται σε συγκεκριμένους πίνακες. Στο τρέχον άρθρο, θα δούμε πώς διαχειρίζονται τα δεδομένα με τη μέθοδο εισαγωγής. Πρέπει να δημιουργήσουμε έναν πίνακα στον οποίο θέλουμε εισαγωγή. Η εντολή εισαγωγής χρησιμοποιείται για την προσθήκη νέων δεδομένων σε σειρές πινάκων. Η δήλωση εισαγωγής PostgreSQL καλύπτει ορισμένους κανόνες για την επιτυχή εκτέλεση ενός ερωτήματος. Πρώτα πρέπει να αναφέρουμε το όνομα του πίνακα ακολουθούμενο από ονόματα στηλών (χαρακτηριστικά) όπου θέλουμε να εισαγάγουμε γραμμές. Δεύτερον, πρέπει να εισαγάγουμε τις τιμές, χωρισμένες με κόμμα μετά τη ρήτρα VALUE. Τέλος, κάθε τιμή πρέπει να είναι στην ίδια σειρά με την ακολουθία των λιστών χαρακτηριστικών που παρέχεται κατά τη δημιουργία ενός συγκεκριμένου πίνακα.

Σύνταξη

>> ΕΙΣΑΓΕΤΕ ΣΕΟΝΟΜΑ ΠΙΝΑΚΑΣ(στήλη 1,στήλη) ΑΞΙΕΣ ('Αξία 1', 'τιμή 2')?

Εδώ, μια στήλη είναι τα χαρακτηριστικά του πίνακα. Η λέξη -κλειδί VALUE χρησιμοποιείται για την εισαγωγή τιμών. 'Τιμή' είναι τα δεδομένα των πινάκων που πρέπει να εισαχθούν.







Εισαγωγή συναρτήσεων γραμμής στο κέλυφος PostgreSQL (psql)

Μετά την επιτυχή εγκατάσταση του postgresql, θα εισάγουμε το όνομα της βάσης δεδομένων, τον αριθμό θύρας και τον κωδικό πρόσβασης. Το Psql θα ξεκινήσει. Στη συνέχεια θα εκτελέσουμε ερωτήσεις αντίστοιχα.





Παράδειγμα 1: Χρησιμοποιώντας το INSERT για να προσθέσετε νέες εγγραφές σε πίνακες
Ακολουθώντας τη σύνταξη, θα δημιουργήσουμε το ακόλουθο ερώτημα. Για να εισαγάγετε μια σειρά στον πίνακα, θα δημιουργήσουμε έναν πίνακα με όνομα πελάτης. Ο αντίστοιχος πίνακας περιέχει 3 στήλες. Ο τύπος δεδομένων συγκεκριμένων στηλών θα πρέπει να αναφέρεται για την εισαγωγή δεδομένων σε αυτήν τη στήλη και για την αποφυγή πλεονασμού. Το ερώτημα για τη δημιουργία πίνακα είναι:





>> δημιουργώ τραπέζιπελάτης(ταυτότηταint,όνομα varchar (40), Χώραvarchar (40))?

Αφού δημιουργήσουμε τον πίνακα, τώρα θα εισάγουμε δεδομένα εισάγοντας γραμμές με μη αυτόματο τρόπο σε ξεχωριστά ερωτήματα. Πρώτον, αναφέρουμε το όνομα της στήλης για να διατηρήσουμε την ακρίβεια των δεδομένων σε συγκεκριμένες στήλες σχετικά με τα χαρακτηριστικά. Στη συνέχεια, θα εισαχθούν τιμές. Οι τιμές κωδικοποιούνται από μεμονωμένα κώμα, καθώς πρόκειται να εισαχθούν χωρίς καμία αλλαγή.



>> εισάγετε σεπελάτης(ταυτότητα,όνομα, Χώρα) αξίες ('1','Alia', 'Pakistan');

Μετά από κάθε επιτυχημένη εισαγωγή, η έξοδος θα είναι 0 1, πράγμα που σημαίνει ότι 1 γραμμή εισάγεται κάθε φορά. Στο ερώτημα όπως αναφέρθηκε προηγουμένως, έχουμε εισαγάγει δεδομένα 4 φορές. Για να δείτε τα αποτελέσματα, θα χρησιμοποιήσουμε το ακόλουθο ερώτημα:

>> επιλέγω*απόπελάτης;

Παράδειγμα 2: Χρήση της δήλωσης INSERT για την προσθήκη πολλών σειρών σε ένα ερώτημα
Η ίδια προσέγγιση χρησιμοποιείται για την εισαγωγή δεδομένων, αλλά όχι για την εισαγωγή δηλώσεων εισαγωγής πολλές φορές. Θα εισαγάγουμε δεδομένα αμέσως χρησιμοποιώντας ένα συγκεκριμένο ερώτημα. όλες οι τιμές μιας γραμμής διαχωρίζονται με Χρησιμοποιώντας το ακόλουθο ερώτημα, θα επιτύχουμε την απαιτούμενη έξοδο

Παράδειγμα 3: ΕΙΣΑΓΩΓΗ πολλαπλών σειρών σε έναν πίνακα με βάση αριθμούς σε άλλο πίνακα
Αυτό το παράδειγμα σχετίζεται με την εισαγωγή δεδομένων από τον έναν πίνακα στον άλλο. Εξετάστε δύο πίνακες, α και β. Ο πίνακας α έχει 2 χαρακτηριστικά, δηλαδή όνομα και κλάση. Εφαρμόζοντας ένα ερώτημα ΔΗΜΙΟΥΡΓΙΑ, θα εισαγάγουμε έναν πίνακα. Μετά τη δημιουργία του πίνακα, τα δεδομένα θα εισαχθούν χρησιμοποιώντας ένα ερώτημα εισαγωγής.

>> δημιουργώ τραπέζιπρος το(όνομα varchar (30),τάξη varchar (40))?
>> Εισάγετε σεπρος τοαξίες («Άμνα»,1),('μπίσμα', '2'),(«Τρελός»,3'),('Κάτω',4')?

Τέσσερις τιμές εισάγονται στον πίνακα χρησιμοποιώντας τη θεωρία υπέρβασης. Μπορούμε να ελέγξουμε χρησιμοποιώντας επιλεγμένες προτάσεις.

Ομοίως, θα δημιουργήσουμε τον πίνακα b, με χαρακτηριστικά όλων των ονομάτων και των θεμάτων. Τα ίδια 2 ερωτήματα θα εφαρμοστούν για εισαγωγή και ανάκτηση της εγγραφής από τον αντίστοιχο πίνακα.

>> δημιουργώ τραπέζισι(όλα τα ονόματα varchar(30), θέμα varchar(70))?

Αποκτήστε την εγγραφή με επιλεγμένη θεωρία.

>> επιλέγω*απόσι;

Για εισαγωγή τιμών πίνακα σι στον πίνακα, θα χρησιμοποιήσουμε το ακόλουθο ερώτημα. Αυτό το ερώτημα θα λειτουργεί με τέτοιο τρόπο ώστε όλα τα ονόματα στον πίνακα σι θα εισαχθεί στον πίνακα προς το με την καταμέτρηση των αριθμών που δείχνουν τον αριθμό των εμφανίσεων ενός συγκεκριμένου αριθμού στην αντίστοιχη στήλη του πίνακα σι Το b.allnames αντιπροσωπεύει τη συνάρτηση αντικειμένου για τον καθορισμό του πίνακα. Η λειτουργία Count (b.allnames) λειτουργεί για την καταμέτρηση της συνολικής εμφάνισης. Όπως κάθε όνομα εμφανίζεται ταυτόχρονα έτσι, η προκύπτουσα στήλη θα έχει 1 αριθμό.

>> Εισάγετε σεπρος το(όνομα,τάξη) επιλέγωβ. όλα τα ονόματα, μετρήστε(β. όλα τα ονόματα) απόσιομάδα μεβ. όλα τα ονόματα,

Παράδειγμα 4: ΕΙΣΑΓΩΓΗ δεδομένων σε γραμμές εάν δεν υπάρχουν
Αυτό το ερώτημα χρησιμοποιείται για την εισαγωγή γραμμών εάν δεν υπάρχει. Πρώτον, το ερώτημα που παρέχεται ελέγχει εάν η γραμμή είναι ήδη παρούσα ή όχι. Εάν υπάρχει ήδη, τότε δεν προστίθενται δεδομένα. Και αν δεν υπάρχουν δεδομένα στη σειρά, η νέα εισαγωγή θα διατηρηθεί. Εδώ το tmp είναι μια προσωρινή μεταβλητή που χρησιμοποιείται για την αποθήκευση δεδομένων για κάποιο χρονικό διάστημα.

>> εισάγετε σεσι(όλα τα ονόματα, θέμα) επιλέγω*από (επιλέγω‘Kinza’όπως καιόλα τα ονόματα, 'ισλαμία'όπως καιθέμα) όπως καιtmpόπου δεν υπάρχει ( επιλέγωόλα τα ονόματααπόσιόπουόλα τα ονόματα='Sundus'όριο 1)?

Παράδειγμα 5: PostgreSQL Upsert χρησιμοποιώντας τη δήλωση INSERT
Αυτή η λειτουργία έχει δύο ποικιλίες:

  • Ενημέρωση: εάν προκύψει σύγκρουση, εάν η εγγραφή ταιριάζει με τα υπάρχοντα δεδομένα στον πίνακα, ενημερώνεται με νέα δεδομένα.
  • Εάν προκύψει σύγκρουση, μην κάνετε τίποτα : Εάν μια εγγραφή ταιριάζει με τα υπάρχοντα δεδομένα στον πίνακα, παραλείπει την εγγραφή ή εάν δημιουργηθεί ένα σφάλμα, επίσης αγνοείται.

Αρχικά, θα σχηματίσουμε έναν πίνακα με μερικά δείγματα δεδομένων.

>> ΔΗΜΙΟΥΡΓΩ ΤΡΑΠΕΖΙtbl2(ταυτότηταINT ΠΡΩΤΑΡΧΙΚΟΣ ΚΛΕΙΔΙ,Ονομα ΑΛΛΑΓΗ ΤΟΥ ΧΑΡΑΚΤΗΡΑ)?

Αφού δημιουργήσουμε πίνακα, θα εισαγάγουμε δεδομένα στο tbl2 χρησιμοποιώντας το ερώτημα:

>> ΕΙΣΑΓΕΤΕ ΣΕtbl2ΑΞΙΕΣ (1,'uzma'),(2,'abdul'),(3,'Hamna'),(4,'fatima'),(5,'shiza'),(6,'javeria');

Εάν προκύψει διένεξη, ενημερώστε:

>>ΕΙΣΑΓΕΤΕ ΣΕtbl2ΑΞΙΕΣ (8,'Βόλτα') ΕΠΙΣΥΓΚΡΟΥΣΗ(ταυτότητα) ΚΑΝΩ ΕΚΣΥΓΧΡΟΝΙΖΩ ΣΕΙΡΑ Ονομα=Εξαιρούνται.Ονομα?

Αρχικά, θα εισάγουμε δεδομένα χρησιμοποιώντας το ερώτημα διένεξης του id 8 και το όνομα Rida. Το ίδιο ερώτημα θα χρησιμοποιηθεί ακολουθώντας το ίδιο αναγνωριστικό. το όνομα θα αλλάξει Τώρα θα παρατηρήσετε πώς θα αλλάξουν τα ονόματα στο ίδιο αναγνωριστικό στον πίνακα.

>> ΕΙΣΑΓΕΤΕ ΣΕtbl2ΑΞΙΕΣ (8,'Εργασία') ΕΠΙΣΥΓΚΡΟΥΣΗ(ταυτότητα) ΚΑΝΩ ΕΚΣΥΓΧΡΟΝΙΖΩ ΣΕΙΡΑ Ονομα =Εξαιρούνται.Ονομα?

Διαπιστώσαμε ότι υπήρξε διένεξη στο αναγνωριστικό 8, οπότε η καθορισμένη σειρά ενημερώνεται.

Εάν προκύψει σύγκρουση, μην κάνετε τίποτα

>> ΕΙΣΑΓΕΤΕ ΣΕtbl2ΑΞΙΕΣ (9,'Hira') ΕΠΙΣΥΓΚΡΟΥΣΗ(ταυτότητα) ΚΑΝΩ ΤΙΠΟΤΑ?

Χρησιμοποιώντας αυτό το ερώτημα, εισάγεται μια νέα γραμμή. Μετά από αυτό, θα χρησιμοποιήσουμε το ίδιο ερώτημα για να δούμε τη σύγκρουση που προέκυψε.

>>ΕΙΣΑΓΕΤΕ ΣΕtbl2ΑΞΙΕΣ (9,'Hira') ΕΠΙΣΥΓΚΡΟΥΣΗ(ταυτότητα) ΚΑΝΩ ΤΙΠΟΤΑ?

Σύμφωνα με την παραπάνω εικόνα, θα δείτε ότι μετά την εκτέλεση του ερωτήματος INSERT 0 0 δεν εμφανίζονται δεδομένα.

συμπέρασμα

Έχουμε ρίξει μια ματιά στην έννοια της κατανόησης της εισαγωγής γραμμών σε πίνακες όπου τα δεδομένα είτε δεν υπάρχουν είτε δεν ολοκληρώνεται η εισαγωγή, εάν βρεθεί κάποια εγγραφή, για να μειωθεί ο πλεονασμός στις σχέσεις βάσης δεδομένων.