Pokud v Postgreslu hodnoty již neexistují, vložte řádek

Insert Row If Values Don T Already Exist Postgresl



Znalost systémů pro správu databází a manipulace s nimi nás seznámila s úpravami databází. Což obvykle zahrnuje vytváření, vkládání, aktualizaci a mazání funkcí aplikovaných na konkrétní tabulky. V aktuálním článku uvidíme, jak jsou data spravována metodou vkládání. Musíme mít vytvořenou tabulku, do které chceme vložení. Příkaz Vložit slouží k přidání nových dat do řádků tabulek. Příkaz PostgreSQL inserts pokrývá některá pravidla pro úspěšné provedení dotazu. Nejprve musíme zmínit název tabulky následovaný názvy sloupců (atributy), kam chceme vložit řádky. Za druhé, musíme zadat hodnoty oddělené čárkou za klauzulí VALUE. Každá hodnota musí být při vytváření konkrétní tabulky ve stejném pořadí, v jakém je poskytnuta posloupnost seznamů atributů.

Syntax

>> VLOŽIT DOTABLENAME(sloupec1,sloupec) HODNOTY („Hodnota1“, „hodnota2“);

Zde jsou sloupce atributy tabulky. Klíčové slovo VALUE se používá k zadávání hodnot. „Hodnota“ jsou data tabulek, které je třeba zadat.







Vkládání řádkových funkcí do shellu PostgreSQL (psql)

Po úspěšné instalaci postgresql zadáme název databáze, číslo portu a heslo. Bude spuštěno Psql. Poté provedeme dotazy, resp.





Příklad 1: Použití INSERT k přidání nových záznamů do tabulek
V návaznosti na syntaxi vytvoříme následující dotaz. Pro vložení řádku do tabulky vytvoříme tabulku s názvem zákazník. Příslušná tabulka obsahuje 3 sloupce. K zadávání dat do tohoto sloupce a k zamezení nadbytečnosti by měl být uveden typ dat konkrétních sloupců. Dotaz k vytvoření tabulky je:





>> vytvořit stůlzákazník(idint,název varchar (40), zeměvarchar (40));

Po vytvoření tabulky nyní zadáme data ručním vložením řádků do samostatných dotazů. Nejprve zmíníme název sloupce, abychom zachovali přesnost údajů v jednotlivých sloupcích týkajících se atributů. A poté budou zadány hodnoty. Hodnoty jsou kódovány jednotlivými čárkami, protože mají být vloženy bez jakýchkoli změn.



>> vložit dozákazník(id,název, země) hodnoty ('1',„Alia“, „Pákistán“);

Po každém úspěšném vložení bude výstup 0 1, což znamená, že se vloží vždy 1 řádek. V dotazu, jak bylo uvedeno výše, jsme vložili data 4krát. K zobrazení výsledků použijeme následující dotaz:

>> vybrat*zzákazník;

Příklad 2: Použití příkazu INSERT při přidávání více řádků do jednoho dotazu
Stejný přístup se používá při vkládání dat, ale nezavádění příkazů pro vložení mnohokrát. Údaje zadáme najednou pomocí určitého dotazu; všechny hodnoty jednoho řádku jsou odděleny pomocí Pomocí následujícího dotazu dosáhneme požadovaného výstupu

Příklad 3: VLOŽTE více řádků do jedné tabulky na základě čísel v jiné tabulce
Tento příklad se týká vkládání dat z jedné tabulky do druhé. Uvažujme dvě tabulky a a b. Tabulka a má 2 atributy, tj. Název a třídu. Použitím CREATE dotazu zavedeme tabulku. Po vytvoření tabulky budou data zadána pomocí vloženého dotazu.

>> vytvořit stůlna(název varchar (30),třída varchar (40));
>> Vložit donahodnoty („Amna“,1),('bhishma', '2'),('Javed', '3'),('Dolů',4');

Čtyři hodnoty jsou vloženy do tabulky pomocí teorie překročení. Můžeme to zkontrolovat pomocí příkazů select.

Podobně vytvoříme tabulku b, která má atributy všech jmen a předmětů. Na vložení a načtení záznamu z odpovídající tabulky budou použity stejné 2 dotazy.

>> vytvořit stůlb(všechny názvy varchar(30), předmět varchar(70));

Načtěte záznam teorií výběru.

>> vybrat*zb;

Vložení hodnot tabulky b v tabulce použijeme následující dotaz. Tento dotaz bude fungovat tak, že všechna jména v tabulce b budou vloženy do tabulky na s počítáním čísel, která ukazují počet výskytů konkrétního čísla v příslušném sloupci tabulky b . b.allnames představuje funkci objektu k určení tabulky. Funkce Count (b.allnames) funguje k počítání celkového výskytu. Protože ke každému jménu došlo najednou, bude mít výsledný sloupec 1 číslo.

>> Vložit dona(název,třída) vybratb. všechna jména, počítejte(b. všechna jména) zbskupina podleb. všechna jména;

Příklad 4: VLOŽTE data do řádků, pokud neexistují
Tento dotaz slouží k zadávání řádků, pokud není přítomen. Zadaný dotaz nejprve zkontroluje, zda je řádek již přítomen nebo ne. Pokud již existuje, data se nepřidají. A pokud data nejsou k dispozici v řadě, nové vložení bude podrženo. Zde je tmp dočasná proměnná, která se používá k ukládání dat po určitou dobu.

>> vložit dob(všechna jména, podmět) vybrat*z (vybrat„Kinza“tak jakoallnames, 'islamiat'tak jakopředmět) tak jakotmpkde ne existuje ( vybratvšechna jménazbkdevšechna jména=„Sundus“omezit 1);

Příklad 5: PostgreSQL Upsert pomocí příkazu INSERT
Tato funkce má dvě varianty:

  • Aktualizace: pokud dojde ke konfliktu, pokud záznam odpovídá existujícím údajům v tabulce, je aktualizován novými daty.
  • Pokud dojde ke konfliktu, nic nedělejte : Pokud se záznam shoduje s existujícími daty v tabulce, přeskočí záznam, nebo pokud dojde k chybě, je také ignorován.

Zpočátku vytvoříme tabulku s několika ukázkovými daty.

>> VYTVOŘIT STŮLtbl2(IDINT HLAVNÍ KLÍČ,název Proměna znaků);

Po vytvoření tabulky vložíme data do tbl2 pomocí dotazu:

>> VLOŽIT DOtbl2HODNOTY (1,'uzma'),(2,'abdul'),(3,'Hamna'),(4,'fatima'),(5,'shiza'),(6,'javeria');

Pokud dojde ke konfliktu, aktualizujte:

>>VLOŽIT DOtbl2HODNOTY (8,'Jízda') NAKONFLIKT(ID) DĚLAT AKTUALIZACE SOUBOR název=Vyloučeno.název;

Nejprve zadáme data pomocí konfliktního dotazu ID 8 a jména Rida. Stejný dotaz bude použit po stejném ID; jméno bude změněno. Nyní si všimnete, jak se změní jména na stejném ID v tabulce.

>> VLOŽIT DOtbl2HODNOTY (8,'Práce') NAKONFLIKT(ID) DĚLAT AKTUALIZACE SOUBOR název =Vyloučeno.název;

Zjistili jsme, že na ID 8 došlo ke konfliktu, takže zadaný řádek je aktualizován.

Pokud dojde ke konfliktu, nic nedělejte

>> VLOŽIT DOtbl2HODNOTY (9,'Hira') NAKONFLIKT(ID) DĚLAT NIC;

Pomocí tohoto dotazu se vloží nový řádek. Poté použijeme stejný dotaz k zobrazení konfliktu, ke kterému došlo.

>>VLOŽIT DOtbl2HODNOTY (9,'Hira') NAKONFLIKT(ID) DĚLAT NIC;

Podle výše uvedeného obrázku uvidíte, že po provedení dotazu INSERT 0 0 shows nejsou zadána žádná data.

Závěr

Podívali jsme se na koncept porozumění vkládání řádků do tabulek, kde data buď nejsou k dispozici, nebo není vložení dokončeno, pokud je nalezen jakýkoli záznam, abychom snížili nadbytečnost v databázových vztazích.