Składnia:
Oto składnia zapytania INSERT IGNORE.
>>INSERT IGNORE INTO nazwa_tabeli(kol1, kol2, kol3)WARTOŚCI(lista_wartości),(lista_wartości),(lista_wartości);
INSERT IGNORE przez Workbench:
Otwórz swój MySQL Workbench 8.0 ze swojego systemu i połącz go z instancją bazy danych.
W obszarze poleceń musisz utworzyć tabelę Employee z czterema kolumnami, w których jedna z nich musi być określona jako UNIQUE. Wypróbuj poniższe zapytanie w obszarze zapytań nawigatora, aby utworzyć tę tabelę. Wybierz całe zapytanie i kliknij znak flash, aby je wykonać.
>>UTWÓRZ TABELĘ Pracownik(ID int PRIMARY KEY NOT NULL, Nazwa varchar(pięćdziesiąt)NOT NULL, wiek Varchar(pięćdziesiąt), Wynagrodzenie varchar(pięćdziesiąt), JEDYNY W SWOIM RODZAJU(NS));
Po utworzeniu tabeli pracownika można znaleźć na liście w opcji Tabele pod danymi bazy danych.
W widoku siatki możesz wprowadzać rekordy bez wpisywania zapytania. Otwórz więc widok siatki pracownika tabeli i dodaj do niego kilka rekordów, jak pokazano poniżej. Wprowadziliśmy wszystkie unikalne rekordy bez duplikatów. Naciśnij przycisk „Zastosuj”, aby zastosować zmiany.
Otworzy się nowe okno z odpowiednimi zapytaniami związanymi z wpisami, które wpisaliśmy powyżej. Ten ekran można nazwać ekranem przeglądu. Jeśli chcesz coś zmienić, możesz to zrobić tutaj. W przeciwnym razie naciśnij przycisk Zastosuj, aby wykonać zapytania.
Jak widać zapytanie zostało wykonane pomyślnie, a rekordy zostały zapisane w bazie danych i jej tabeli Pracownik. Wygenerowałby błąd, gdybyśmy dodali jakąkolwiek zduplikowaną wartość w identyfikatorze kolumny. Stuknij przycisk Zakończ.
Chodziło o widok siatki. Teraz będziemy wstawiać rekordy za pośrednictwem obszaru zapytania. Tymczasem tym razem wstawialiśmy zduplikowane rekordy, aby sprawdzić wyniki. Wypróbowaliśmy więc poniższe zapytanie INSERT, w którym mamy dwie listy wartości. Obie listy wartości mają tę samą wartość w kolumnie „ID”. Wybierz zapytanie i naciśnij znak flash, aby wykonać zapytanie.
Zapytanie nie będzie działać poprawnie i wygeneruje błąd z powodu powielonych wartości w poleceniu INSERT, jak pokazano na obrazku.
Teraz wypróbuj to samo powyższe zapytanie z klauzulą INSERT IGNORE i wykonaj je w przedstawiony sposób.
Widać, że nie generuje błędu w obszarze wyjściowym, ale ostrzega, że polecenie zawiera zduplikowane wartości.
Odśwież widok siatki tabeli Pracownik. Zapytanie INSERT IGNORE zadziałało w połowie. Wstawił pierwszą listę wartości do tabeli, ale druga lista wartości została zignorowana z powodu powtarzającej się wartości 13.
INSERT IGNORE za pomocą powłoki wiersza poleceń:
Aby zrozumieć tę koncepcję, otwórzmy powłokę klienta wiersza poleceń MySQL w twoim systemie. Po zapytaniu wpisz swoje hasło do MySQL, aby rozpocząć pracę nad nim.
Teraz czas na stworzenie stołu. Wypróbuj poniższe polecenie, aby to zrobić. Stworzyliśmy tabelę o nazwie „minister”, podczas gdy jedna z jej kolumn ma ograniczenie UNIQUE. Oczywiste jest, że identyfikator kolumny zaakceptuje tylko wartości unikatowe, a nie zduplikowane.
>>UTWÓRZ TABELĘ data.minister(Mid INT PRIMARY KEY UNIQUE NOT NULL, nazwa VARCHAR(Cztery pięć), Miasto VARCHAR(Cztery pięć));
Zapytanie działa poprawnie, a tabela została utworzona. Aby zrozumieć klauzulę INSERT IGNORE, musisz najpierw zobaczyć, jak działa proste polecenie INSERT. Jeśli używasz polecenia INSERT, aby wstawić kilka danych informacyjnych do tabeli, MySQL zawiesza transakcję i generuje wyjątek, jeśli podczas przetwarzania wystąpi błąd. W konsekwencji do tabeli nie dodano żadnych wierszy. Wstawmy pierwszy rekord w tabeli minister używając poniższego zapytania. Zapytanie zadziała pomyślnie, ponieważ tabela jest obecnie pusta i nie ma odpowiednika dla rekordu.
Ponieważ identyfikator kolumny to UNIQUE, gdy spróbujemy poniższej instrukcji w powłoce wiersza poleceń, wygeneruje błąd. Dzieje się tak, ponieważ w poprzednim zapytaniu dodaliśmy wartość 11, a ze względu na klucz UNIQUE nie pozwala nam to ponownie dodać powtarzającej się wartości.
Dlatego po sprawdzeniu tabeli widzimy, że tabela ma tylko 1 rekord dodany przez pierwsze zapytanie INSERT.
>>WYBIERZ*OD danych.minister;
I odwrotnie, jeśli używasz klauzuli INSERT IGNORE, niepoprawne wiersze danych, które powodują błąd, zostaną przeoczone i wprowadzą tylko te dokładne. W poniższym poleceniu używaliśmy polecenia INSERT IGNORE, aby uniknąć dodawania powtarzających się wartości do tabeli i przeoczyć błąd. Jak widać, pierwsza lista wartości ma zduplikowaną wartość 11, taką samą jak w poprzednim zapytaniu. Chociaż druga lista wartości jest unikalna, pokaże 1 rekord wstawiony do tabeli, która jest drugą listą wartości. MySQL wskazuje również, że wstawiono tylko 1 rekord, aw wiadomości generowane jest 1 ostrzeżenie. Możesz wtedy założyć, że jeśli używamy klauzuli INSERT IGNORE, MySQL wyświetla ostrzeżenie.
Jak widać z poniższych danych wyjściowych, w tej tabeli mamy tylko dwa rekordy — pierwsza lista wartości podana w powyższym zapytaniu, która jest pomijana.
>>WYBIERZ*OD danych.minister;
Wniosek:
Wykonaliśmy wszystkie niezbędne przykłady INSERT IGNORE na zduplikowanych wartościach za pośrednictwem MySQL Workbench i powłoki klienta MySQL wiersza poleceń.