Ak v Postgresl hodnoty ešte neexistujú, vložte riadok

Insert Row If Values Don T Already Exist Postgresl



Vďaka znalosti a manipulácii so systémami správy databáz sme sa oboznámili s úpravami databáz. Čo zvyčajne zahŕňa vytváranie, vkladanie, aktualizáciu a odstraňovanie funkcií použitých v konkrétnych tabuľkách. V aktuálnom článku uvidíme, ako sú údaje spravované metódou vkladania. Musíme vytvoriť tabuľku, do ktorej chceme vložiť. Príkaz Vložiť slúži na pridanie nových údajov do riadkov tabuliek. Príkaz PostgreSQL inserts pokrýva niektoré pravidlá úspešného vykonania dotazu. Najprv musíme spomenúť názov tabuľky, za ktorým nasledujú názvy stĺpcov (atribúty), do ktorých chceme vložiť riadky. Za druhé, musíme zadať hodnoty oddelené čiarkou za doložkou HODNOTA. Nakoniec každá hodnota musí byť v rovnakom poradí, ako je pri vytváraní konkrétnej tabuľky poskytnutá postupnosť zoznamov atribútov.

Syntax

>> VLOŽIŤ DOTABLENAME(stĺpec1,stĺpci) HODNOTY („Hodnota1“, „hodnota2“);

Tu sú stĺpce atribútmi tabuľky. Na zadanie hodnôt sa používa kľúčové slovo VALUE. „Hodnota“ sú údaje z tabuliek, ktoré sa majú zadať.







Vkladanie riadkových funkcií do shellu PostgreSQL (psql)

Po úspešnej inštalácii postgresql zadáme názov databázy, číslo portu a heslo. Spustí sa súbor psql. Potom vykonáme dotazy, resp.





Príklad 1: Použitie INSERT na pridanie nových záznamov do tabuliek
Podľa syntaxe vytvoríme nasledujúci dotaz. Na vloženie riadka do tabuľky vytvoríme tabuľku s názvom zákazník. Príslušná tabuľka obsahuje 3 stĺpce. Na zadanie údajov do tohto stĺpca a na zabránenie nadbytočnosti by sa mal uviesť typ údajov konkrétnych stĺpcov. Dotaz na vytvorenie tabuľky je:





>> vytvoriť stôlzákazníka(idint,názov varchar (40), krajinavarchar (40));

Po vytvorení tabuľky teraz zadáme údaje ručným vkladaním riadkov do samostatných dopytov. Po prvé, uvádzame názov stĺpca, aby sa zachovala presnosť údajov v jednotlivých stĺpcoch týkajúcich sa atribútov. Potom budú zadané hodnoty. Hodnoty sú kódované jednoduchými čiarkami, pretože majú byť vložené bez akýchkoľvek zmien.



>> vložiť dozákazníka(id,názov, krajina) hodnoty ('1',„Alia“, „Pakistan“);

Po každom úspešnom vložení bude výstup 0 1, čo znamená, že sa vloží naraz 1 riadok. Do vyššie uvedeného dopytu sme vložili údaje 4 -krát. Na zobrazenie výsledkov použijeme nasledujúci dotaz:

>> vyberte*odzákazník;

Príklad 2: Použitie príkazu INSERT na pridanie viacerých riadkov do jedného dotazu
Rovnaký prístup sa používa pri vkladaní údajov, ale nie pri zavádzaní príkazov vloženia mnohokrát. Údaje zadáme naraz pomocou určitého dopytu; všetky hodnoty jedného riadka sú oddelené položkou Použitím nasledujúceho dotazu dosiahneme požadovaný výstup

Príklad 3: VLOŽTE viac riadkov do jednej tabuľky na základe čísel v inej tabuľke
Tento príklad sa týka vkladania údajov z jednej tabuľky do druhej. Uvažujme dve tabuľky a a b. Tabuľka a má 2 atribúty, tj. Názov a triedu. Použitím dotazu CREATE zavedieme tabuľku. Po vytvorení tabuľky budú údaje vložené pomocou vkladacieho dotazu.

>> vytvoriť stôldo(názov varchar (30),trieda varchar (40));
>> Vložiť dodohodnoty („Amna“,1),('bhishma', '2'),(„Javed“, „3'),(„Dole“,4');

Do tabuľky sa pomocou teórie prekročenia vložia štyri hodnoty. Môžeme to skontrolovať pomocou príkazov select.

Podobne vytvoríme tabuľku b s atribútmi všetkých mien a predmetov. Na vloženie a načítanie záznamu z príslušnej tabuľky sa použijú rovnaké 2 dotazy.

>> vytvoriť stôlb(všetky mená varchar(30), predmet varchar(70));

Načítajte záznam pomocou teórie výberu.

>> vyberte*odb;

Vložiť hodnoty z tabuľky b v tabuľke použijeme nasledujúci dotaz. Tento dotaz bude fungovať tak, že všetky názvy v tabuľke b budú vložené do tabuľky do s počítaním čísel, ktoré ukazujú počet výskytov konkrétneho čísla v príslušnom stĺpci tabuľky b . b.allnames predstavuje funkciu objektu na špecifikovanie tabuľky. Funkcia Count (b.allnames) funguje na počítanie celkového výskytu. Pretože sa každé meno vyskytuje naraz, bude mať výsledný stĺpec 1 číslo.

>> Vložiť dodo(názov,trieda) vyberteb. všetky mená, počítaj(b. všetky mená) odbskupina odb. všetky mená;

Príklad 4: VLOŽTE údaje do riadkov, ak neexistujú
Tento dotaz sa používa na zadávanie riadkov, ak nie je k dispozícii. Poskytnutý dotaz najskôr skontroluje, či je riadok už prítomný alebo nie. Ak údaje už existujú, údaje sa nepridajú. A ak údaje nie sú k dispozícii za sebou, nové vloženie sa podrží. Tu je tmp dočasná premenná používaná na určitý čas na ukladanie údajov.

>> vložiť dob(všetky mená, predmet) vyberte*od (vyberte„Kinza“akovšetky mená, „islamiat“akopredmet) akotmpkde nie existuje ( vybertevšetky menáodbkdevšetky mená=„Sundus“limit 1);

Príklad 5: PostgreSQL Upsert pomocou príkazu INSERT
Táto funkcia má dve odrody:

  • Aktualizácia: ak dôjde ku konfliktu, ak sa záznam zhoduje s existujúcimi údajmi v tabuľke, aktualizuje sa o nové údaje.
  • Ak dôjde ku konfliktu, nič nerobte :: Ak sa záznam zhoduje s existujúcimi údajmi v tabuľke, záznam preskočí alebo ak je založená chyba, bude tiež ignorovaný.

Na začiatku vytvoríme tabuľku s niekoľkými ukážkovými údajmi.

>> VYTVORIŤ TABUĽKAtbl2(IDINT PRIMÁRNY KĽÚČ,názov ZMENY ZNAKOV);

Po vytvorení tabuľky vložíme údaje do tbl2 pomocou dotazu:

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

Ak dôjde ku konfliktu, aktualizujte:

>>VLOŽIŤ DOtbl2HODNOTY (8,'Jazda') ZAPNUTÉKONFLIKT(ID) ROBIŤ AKTUALIZÁCIA NASTAVIŤ názov=Vylúčené.názov;

Najprv zadáme údaje pomocou konfliktného dotazu id 8 a mena Rida. Ten istý dotaz sa použije podľa rovnakého ID; názov sa zmení. Teraz si všimnete, ako sa názvy zmenia na rovnakom ID v tabuľke.

>> VLOŽIŤ DOtbl2HODNOTY (8,'Práca') ZAPNUTÉKONFLIKT(ID) ROBIŤ AKTUALIZÁCIA NASTAVIŤ názov =Vylúčené.názov;

Zistili sme, že na id 8 došlo ku konfliktu, takže uvedený riadok je aktualizovaný.

Ak dôjde ku konfliktu, nič nerobte

>> VLOŽIŤ DOtbl2HODNOTY (9,'Hira') ZAPNUTÉKONFLIKT(ID) ROBIŤ NIČ;

Pomocou tohto dopytu sa vloží nový riadok. Potom použijeme, ak ten istý dotaz, aby sme videli konflikt, ktorý nastal.

>>VLOŽIŤ DOtbl2HODNOTY (9,'Hira') ZAPNUTÉKONFLIKT(ID) ROBIŤ NIČ;

Podľa vyššie uvedeného obrázku uvidíte, že po vykonaní dotazu INSERT 0 0 ukazuje, že nie sú zadané žiadne údaje.

Záver

Pozreli sme sa na chápaciu koncepciu vkladania riadkov do tabuliek, v ktorých údaje buď nie sú k dispozícii, alebo sa vloženie nedokončí, ak sa nájde nejaký záznam, aby sa znížila nadbytočnosť databázových vzťahov.