MySQL MariaDB

Wstaw MySQL Ignoruj ​​zduplikowany klucz

Wstaw MySQL Ignoruj ​​zduplikowany klucz
W tabelach lub zestawach wyników często występują sprzeczne dane. Poprawianie jest również czasochłonne i często należy unikać powtarzających się zapisów. Konieczne jest zidentyfikowanie zduplikowanych rekordów i usunięcie ich z obu tabel. W tej sekcji omówimy, jak uniknąć pojawiania się zduplikowanych danych w tabeli i jak wyeliminować obecne zduplikowane rekordy. W tym przewodniku dowiesz się, jak używać klauzuli INSERT IGNORE, aby uniknąć błędu.

Składnia:

Oto składnia zapytania INSERT IGNORE.

>> INSERT IGNORE INTO nazwa_tabeli(col1, col2, col3) VALUES (lista_wartości), (lista_wartości), (lista_wartości);

INSERT IGNORE przez Workbench:

Otwórz swoje środowisko pracy MySQL 8.0 z twojego systemu i połącz go z instancją bazy danych.

W obszarze poleceń musisz utworzyć tabelę „Pracownik” z czterema kolumnami, w których jedna z nich musi być określona jako „UNIKATOWA”. Wypróbuj poniższe zapytanie w obszarze zapytań nawigatora, aby utworzyć tę tabelę. Wybierz całe zapytanie i kliknij znak flash, aby je wykonać.

>> CREATE TABLE Pracownik (ID int PRIMARY KEY NOT NULL, Name varchar(50) NOT NULL, Age Varchar(50), Salary varchar(50), UNIQUE (ID));

Po utworzeniu można znaleźć tabelę „pracownik” na liście pod opcją „Tabele” pod bazą danych „dane”.

W widoku siatki możesz wprowadzać rekordy bez wpisywania zapytania. Otwórz więc widok siatki tabeli „pracownik” i dodaj do niej kilka rekordów, jak pokazano poniżej. Wprowadziliśmy wszystkie unikalne rekordy bez żadnych duplikatów. Kliknij przycisk „Zastosuj”, aby zastosować zmiany.

Otworzy się nowe okno z odpowiednimi zapytaniami dotyczącymi wpisów, 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 kolumnie „ID”. Naciśnij przycisk „Zakończ”.

Chodziło o widok siatki. Teraz będziemy wstawiać rekordy przez obszar 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 zduplikowanych 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 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 kolumna „ID” zaakceptuje tylko unikalne wartości, a nie zduplikowane wartości.

>> UTWÓRZ dane TABELI.minister( Mid INT PRIMARY KEY UNIQUE NOT NULL, Imię VARCHAR(45), Miasto VARCHAR(45));

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 do wstawienia kilku 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 rekordu, który mógłby zostać odpowiednikiem.

Ponieważ kolumna „ID” jest UNIKATOWA, 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 * Z 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 samo 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, a w 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, co jest pomijane.

>> WYBIERZ * Z 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 wiersza poleceń MySQL.

Gry Vulkan for Linux Users
Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...
Gry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...
Gry OpenTTD Tutorial
OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...