Wstaw wiersz, jeśli wartości nie istnieją już w Postgresl

Insert Row If Values Don T Already Exist Postgresl



Znajomość i manipulowanie systemami zarządzania bazami danych zapoznała nas ze zmianami dotyczącymi baz danych. Co zazwyczaj obejmuje tworzenie, wstawianie, aktualizowanie i usuwanie funkcji stosowanych w określonych tabelach. W bieżącym artykule zobaczymy, jak dane są zarządzane przez metodę wstawiania. Musimy stworzyć tabelę, w której chcemy wstawić. Instrukcja Insert służy do dodawania nowych danych w wierszach tabel. Instrukcja inserts PostgreSQL zawiera pewne zasady pomyślnego wykonania zapytania. Najpierw musimy podać nazwę tabeli, a następnie nazwy kolumn (atrybuty), do których chcemy wstawić wiersze. Po drugie, musimy wprowadzić wartości oddzielone przecinkiem po klauzuli VALUE. Wreszcie, każda wartość musi być w tej samej kolejności, w jakiej sekwencja list atrybutów jest podana podczas tworzenia konkretnej tabeli.

Składnia

>> WSTAWIĆ DONAZWA TABELI(kolumna1,kolumna) WARTOŚCI („wartość1”, „wartość2”);

Tutaj kolumna to atrybuty tabeli. Słowo kluczowe VALUE służy do wprowadzania wartości. „Wartość” to dane tabel, które należy wprowadzić.







Wstawianie funkcji wierszowych w powłoce PostgreSQL (psql)

Po udanej instalacji postgresql wprowadzimy nazwę bazy danych, numer portu i hasło. Psql zostanie zainicjowany. Następnie wykonamy odpowiednio zapytania.





Przykład 1: Używanie INSERT do dodawania nowych rekordów do tabel
Zgodnie ze składnią utworzymy następujące zapytanie. Aby wstawić wiersz do tabeli, stworzymy tabelę o nazwie klient. Odpowiednia tabela zawiera 3 kolumny. Należy wspomnieć o typie danych poszczególnych kolumn, aby wprowadzić dane w tej kolumnie i uniknąć nadmiarowości. Zapytanie do utworzenia tabeli to:





>> Stwórz Tabelaklient(NSint,Nazwa varchar (40), krajvarchar (40));

Po utworzeniu tabeli będziemy teraz wprowadzać dane, ręcznie wstawiając wiersze w osobnych zapytaniach. W pierwszej kolejności podajemy nazwę kolumny, aby zachować dokładność danych w poszczególnych kolumnach dotyczących atrybutów. A następnie zostaną wprowadzone wartości. Wartości są zakodowane pojedynczymi przecinkami, ponieważ należy je wstawiać bez żadnych zmian.



>> wstawić doklient(NS,Nazwa, kraj) wartości („1”,„Alia”, „Pakistan”);

Po każdym udanym wstawieniu wynik będzie równy 0 1, co oznacza, że ​​wstawiany jest 1 wiersz na raz. W zapytaniu, jak wspomniano wcześniej, wstawiliśmy dane 4 razy. Aby wyświetlić wyniki, użyjemy następującego zapytania:

>> Wybierz*zklient;

Przykład 2: Użycie instrukcji INSERT do dodawania wielu wierszy w jednym zapytaniu
To samo podejście jest stosowane przy wstawianiu danych, ale nie wprowadza się wielokrotnie instrukcji wstawiania. Wprowadzimy dane od razu za pomocą określonego zapytania; wszystkie wartości jednego wiersza są oddzielone przez Używając poniższego zapytania, uzyskamy wymagany wynik

Przykład 3: WSTAW wiele wierszy w jednej tabeli na podstawie liczb w innej tabeli
Ten przykład dotyczy wstawiania danych z jednej tabeli do drugiej. Rozważ dwie tabele, a i b. Tabela a ma 2 atrybuty, tj. nazwę i klasę. Stosując zapytanie CREATE wprowadzimy tabelę. Po utworzeniu tabeli dane zostaną wprowadzone za pomocą zapytania wstawiającego.

>> Stwórz Tabelado(Nazwa varchar (30),klasa varchar (40));
>> Wstawić dodowartości („Amna”,1),(„bhiszma”2'),(„oszczepiony”,3'),('W dół',4');

Do tabeli wstawia się cztery wartości, wykorzystując teorię przekroczenia. Możemy to sprawdzić za pomocą instrukcji select.

Podobnie stworzymy tabelę b, zawierającą atrybuty wszystkich imion i przedmiotów. Te same 2 zapytania zostaną zastosowane do wstawienia i pobrania rekordu z odpowiedniej tabeli.

>> Stwórz Tabelab(allnames varchar(30), temat varchar(70));

Pobierz rekord, wybierając teorię.

>> Wybierz*zb;

Aby wstawić wartości z tabeli b w tabeli użyjemy następującego zapytania. To zapytanie będzie działać w taki sposób, że wszystkie nazwy w tabeli b zostanie wstawiony do tabeli do z liczeniem liczb, które pokazują liczbę wystąpień określonej liczby w odpowiedniej kolumnie tabeli b . b.allnames reprezentuje funkcję obiektu określającą tabelę. Funkcja Count (b.allnames) służy do zliczania wszystkich wystąpień. Ponieważ każda nazwa występuje jednocześnie, wynikowa kolumna będzie miała 1 numer.

>> Wstawić dodo(Nazwa,klasa) Wybierzb.wszystkie imiona, liczyć(b.wszystkie imiona) zbGrupa za pomocąb.wszystkie imiona;

Przykład 4: WSTAW dane w wierszach, jeśli nie istnieją
To zapytanie służy do wprowadzania wierszy, jeśli nie istnieje. Najpierw dostarczone zapytanie sprawdza, czy wiersz już istnieje, czy nie. Jeśli już istnieje, dane nie są dodawane. A jeśli danych nie ma w rzędzie, nowe wstawienie zostanie wstrzymane. Tutaj tmp jest tymczasową zmienną służącą do przechowywania danych przez pewien czas.

>> wstawić dob(wszystkie imiona, temat) Wybierz*z (Wybierz„Kinza”jakwszystkie imiona, „islam”jakPrzedmiot) jaktmpgdzie nie istnieje ( Wybierzwszystkie imionazbgdziewszystkie imiona=„Sundus”limit 1);

Przykład 5: Upsert PostgreSQL przy użyciu instrukcji INSERT
Ta funkcja ma dwie odmiany:

  • Aktualizacja: jeśli wystąpi konflikt, jeśli rekord pasuje do istniejących danych w tabeli, jest aktualizowany o nowe dane.
  • Jeśli wystąpi konflikt, nie rób nic : Jeśli rekord pasuje do istniejących danych w tabeli, pomija rekord lub jeśli zostanie znaleziony błąd, jest również ignorowany.

Początkowo utworzymy tabelę z przykładowymi danymi.

>> STWÓRZ TABELAtbl2(NSWEWN PODSTAWOWY KLUCZ,Nazwa RÓŻNE ZNAKI);

Po utworzeniu tabeli wstawimy dane do tbl2 za pomocą zapytania:

>> WSTAWIĆ DOtbl2WARTOŚCI (1,uzma),(2,„abdul”),(3,„Hamna”),(4,fatima),(5,„sziza”),(6,„javeria”);

Jeśli wystąpi konflikt, Aktualizuj:

>>WSTAWIĆ DOtbl2WARTOŚCI (8,'Jeździć') NAKONFLIKT(NS) ROBIĆ AKTUALIZACJA USTAWIĆ Nazwa=Wyłączony.Nazwa;

Na początku wprowadzimy dane za pomocą zapytania konfliktowego o identyfikatorze 8 i nazwie Rida. To samo zapytanie zostanie użyte po tym samym identyfikatorze; nazwa zostanie zmieniona. Teraz zauważysz, jak zmienią się imiona dla tego samego identyfikatora w tabeli.

>> WSTAWIĆ DOtbl2WARTOŚCI (8,'Praca') NAKONFLIKT(NS) ROBIĆ AKTUALIZACJA USTAWIĆ Nazwa =Wyłączony.Nazwa;

Odkryliśmy, że wystąpił konflikt na id 8, więc określony wiersz jest aktualizowany.

Jeśli wystąpi konflikt, nie rób nic

>> WSTAWIĆ DOtbl2WARTOŚCI (9,„Hira”) NAKONFLIKT(NS) ROBIĆ NIC;

Za pomocą tego zapytania wstawiany jest nowy wiersz. Następnie użyjemy tego samego zapytania, aby zobaczyć konflikt, który wystąpił.

>>WSTAWIĆ DOtbl2WARTOŚCI (9,„Hira”) NAKONFLIKT(NS) ROBIĆ NIC;

Zgodnie z powyższym obrazkiem zobaczysz, że po wykonaniu zapytania INSERT 0 0 pokazuje, że żadne dane nie zostały wprowadzone.

Wniosek

Rzuciliśmy okiem na rozumienie koncepcji wstawiania wierszy w tabelach, w których dane nie są obecne lub wstawianie nie jest zakończone, jeśli jakikolwiek rekord zostanie znaleziony, w celu zmniejszenia nadmiarowości w relacjach bazy danych.