Zeile einfügen, wenn Werte nicht bereits in Postgresl vorhanden sind

Insert Row If Values Don T Already Exist Postgresl



Die Kenntnis und Handhabung von Datenbankverwaltungssystemen hat uns mit Änderungen an Datenbanken vertraut gemacht. Dies beinhaltet normalerweise das Erstellen, Einfügen, Aktualisieren und Löschen von Funktionen, die auf bestimmte Tabellen angewendet werden. Im aktuellen Artikel werden wir sehen, wie Daten durch die Einfügemethode verwaltet werden. Wir müssen eine Tabelle erstellen, in die wir einfügen möchten. Die Insert-Anweisung wird zum Hinzufügen neuer Daten in Tabellenzeilen verwendet. Die PostgreSQL-Inserts-Anweisung behandelt einige Regeln für die erfolgreiche Ausführung einer Abfrage. Zuerst müssen wir den Tabellennamen erwähnen, gefolgt von den Spaltennamen (Attributen), in die wir Zeilen einfügen möchten. Zweitens müssen wir die Werte durch ein Komma getrennt nach der VALUE-Klausel eingeben. Schließlich muss jeder Wert in derselben Reihenfolge sein, wie die Reihenfolge der Attributlisten beim Erstellen einer bestimmten Tabelle bereitgestellt wird.

Syntax

>> EINFÜGUNG HINEINTABELLENNAME(Spalte1,Säule) WERTE („Wert1“, „Wert2“);

Eine Spalte ist hier die Attribute der Tabelle. Das Schlüsselwort VALUE wird verwendet, um Werte einzugeben. ‚Wert‘ sind die Daten der einzugebenden Tabellen.







Einfügen von Zeilenfunktionen in die PostgreSQL-Shell (psql)

Nach erfolgreicher Installation von postgresql geben wir den Datenbanknamen, die Portnummer und das Passwort ein. Psql wird gestartet. Wir werden dann entsprechende Abfragen durchführen.





Beispiel 1: Verwenden von INSERT zum Hinzufügen neuer Datensätze zu Tabellen
Der Syntax folgend, erstellen wir die folgende Abfrage. Um eine Zeile in die Tabelle einzufügen, erstellen wir eine Tabelle namens customer. Die jeweilige Tabelle enthält 3 Spalten. Der Datentyp bestimmter Spalten sollte erwähnt werden, um Daten in diese Spalte einzugeben und Redundanz zu vermeiden. Abfrage zum Erstellen einer Tabelle lautet:





>> schaffen TischKunde(Ich würdeint,Name varchar (40), Landvarchar (40));

Nachdem wir die Tabelle erstellt haben, geben wir nun Daten ein, indem wir Zeilen manuell in separate Abfragen einfügen. Zuerst erwähnen wir den Spaltennamen, um die Genauigkeit der Daten in bestimmten Spalten bezüglich Attributen zu gewährleisten. Und dann werden Werte eingegeben. Werte werden durch einzelne Kommas kodiert, da sie unverändert eingefügt werden sollen.



>> Einfügung hineinKunde(Ich würde,Name, Land) Werte ('1',„Alia“, „Pakistan“);

Nach jedem erfolgreichen Einfügen wird die Ausgabe 0 1 sein, was bedeutet, dass jeweils 1 Zeile eingefügt wird. In der Abfrage haben wir, wie bereits erwähnt, viermal Daten eingefügt. Um die Ergebnisse anzuzeigen, verwenden wir die folgende Abfrage:

>> auswählen*vonKunde;

Beispiel 2: Verwenden der INSERT-Anweisung beim Hinzufügen mehrerer Zeilen in einer einzelnen Abfrage
Der gleiche Ansatz wird beim Einfügen von Daten verwendet, jedoch nicht oft beim Einführen von Insert-Anweisungen. Wir werden Daten sofort eingeben, indem wir eine bestimmte Abfrage verwenden; alle Werte einer Zeile werden durch getrennt Mit der folgenden Abfrage erhalten wir die gewünschte Ausgabe

Beispiel 3: INSERT mehrere Zeilen in einer Tabelle basierend auf Zahlen in einer anderen Tabelle
Dieses Beispiel bezieht sich auf das Einfügen von Daten aus einer Tabelle in eine andere. Betrachten Sie zwei Tabellen, a und b. Tabelle a hat 2 Attribute, d. h. Name und Klasse. Durch Anwenden einer CREATE-Abfrage führen wir eine Tabelle ein. Nach der Erstellung der Tabelle werden die Daten über eine Einfügeabfrage eingegeben.

>> schaffen Tischzu(Name varchar (30),Klasse varchar (40));
>> Einfügung hineinzuWerte ('Amna',1),('bhishma','2'),(‚javed‘,‘3'),('Runter',4');

Unter Verwendung der Überschreitungstheorie werden vier Werte in die Tabelle eingefügt. Wir können dies mithilfe von Select-Anweisungen überprüfen.

Auf ähnliche Weise erstellen wir Tabelle b mit Attributen aller Namen und Subjekte. Dieselben 2 Abfragen werden angewendet, um den Datensatz aus der entsprechenden Tabelle einzufügen und abzurufen.

>> schaffen TischB(allnames varchar(30), Betreff varchar(70));

Holen Sie den Datensatz durch Auswahltheorie.

>> auswählen*vonB;

Einfügen von Tabellenwerten B in der Tabelle verwenden wir die folgende Abfrage. Diese Abfrage funktioniert so, dass alle Namen in der Tabelle B wird in Tabelle eingefügt zu mit dem Zählen von Zahlen, die die Häufigkeit des Vorkommens einer bestimmten Zahl in der jeweiligen Tabellenspalte anzeigen B . b.allnames repräsentiert die Objektfunktion zur Angabe der Tabelle. Die Funktion Count (b.allnames) arbeitet, um das Gesamtvorkommen zu zählen. Da jeder Name gleichzeitig vorkommt, hat die resultierende Spalte 1 Zahl.

>> Einfügung hineinzu(Name,Klasse) auswählenb.allnames, count(b.allnames) vonBGruppe vonb.alleNamen;

Beispiel 4: INSERT-Daten in Zeilen, falls nicht vorhanden
Diese Abfrage wird verwendet, um Zeilen einzugeben, wenn sie nicht vorhanden ist. Zunächst prüft die bereitgestellte Abfrage, ob die Zeile bereits vorhanden ist oder nicht. Wenn es bereits vorhanden ist, werden keine Daten hinzugefügt. Und wenn in einer Zeile keine Daten vorhanden sind, wird die neue Einfügung angehalten. Hier ist tmp eine temporäre Variable, die verwendet wird, um Daten für einige Zeit zu speichern.

>> Einfügung hineinB(alleNamen, Betreff) auswählen*von (auswählen„Kinza“wieallenamen, 'islamiat'wieGegenstand) wietmpwo nicht existiert ( auswählenallenamenvonBwoallenamen=„Sund“Grenze 1);

Beispiel 5: PostgreSQL-Upsert mit INSERT-Anweisung
Diese Funktion hat zwei Varianten:

  • Update: Wenn ein Konflikt auftritt, Wenn der Datensatz mit den vorhandenen Daten in der Tabelle übereinstimmt, wird er mit neuen Daten aktualisiert.
  • Wenn ein Konflikt auftritt, tun Sie nichts : Wenn ein Datensatz mit den vorhandenen Daten in der Tabelle übereinstimmt, überspringt er den Datensatz oder wird ein Fehler festgestellt, wird er ebenfalls ignoriert.

Zunächst erstellen wir eine Tabelle mit einigen Beispieldaten.

>> SCHAFFEN TISCHtbl2(ICH WÜRDEINT PRIMÄR SCHLÜSSEL,Name CHARAKTER UNTERSCHIEDLICH);

Nach dem Erstellen der Tabelle fügen wir Daten in tbl2 ein, indem wir eine Abfrage verwenden:

>> EINFÜGUNG HINEINtbl2WERTE (1,'uzma'),(2,'abdul'),(3,'Hamna'),(4,'fatima'),(5,'shiza'),(6,'javeria');

Wenn ein Konflikt auftritt, aktualisieren Sie:

>>EINFÜGUNG HINEINtbl2WERTE (8,'Fahrt') ANKONFLIKT(ICH WÜRDE) TUN AKTUALISIEREN EINSTELLEN Name=Ausgeschlossen.Name;

Die Dateneingabe erfolgt zunächst über die Konfliktabfrage id 8 und den Namen Rida. Dieselbe Abfrage wird nach derselben ID verwendet; der Name wird geändert. Jetzt werden Sie feststellen, wie Namen auf derselben ID in der Tabelle geändert werden.

>> EINFÜGUNG HINEINtbl2WERTE (8,'Arbeit') ANKONFLIKT(ICH WÜRDE) TUN AKTUALISIEREN EINSTELLEN Name =Ausgeschlossen.Name;

Wir haben festgestellt, dass bei ID 8 ein Konflikt aufgetreten ist, sodass die angegebene Zeile aktualisiert wird.

Wenn ein Konflikt auftritt, tun Sie nichts

>> EINFÜGUNG HINEINtbl2WERTE (9,'Hira') ANKONFLIKT(ICH WÜRDE) TUN NICHTS;

Mit dieser Abfrage wird eine neue Zeile eingefügt. Danach verwenden wir if dieselbe Abfrage, um den aufgetretenen Konflikt zu sehen.

>>EINFÜGUNG HINEINtbl2WERTE (9,'Hira') ANKONFLIKT(ICH WÜRDE) TUN NICHTS;

Gemäß obigem Bild sehen Sie, dass nach der Ausführung der Abfrage INSERT 0 0 keine Daten eingegeben wurden.

Abschluss

Wir haben einen Blick auf das verständliche Konzept des Einfügens von Zeilen in Tabellen geworfen, in denen entweder keine Daten vorhanden sind oder das Einfügen nicht abgeschlossen ist, wenn ein Datensatz gefunden wird, um Redundanz in Datenbankbeziehungen zu reduzieren.