MySQL - Jak wstawić nowy wiersz tylko wtedy, gdy dane nie istnieją

MySQL - Jak wstawić nowy wiersz tylko wtedy, gdy dane nie istnieją
MySQL to słynne RDBM open source do przechowywania danych w bazach danych. Wstawienie danych do tabel Twojej bazy danych jest powszechnym zadaniem. Czasami użytkownicy nie chcą wstawić zduplikowanych danych, aby wyeliminować redundancję. MySQL pozwala użytkownikom wstawić dane tylko wtedy, gdy podobne dane nie istnieją jeszcze.

W tym poście omówiono wstawienie nowego wiersza tylko wtedy, gdy dane nie istnieją już w tabeli MySQL. Przed rozpoczęciem tego postu upewnij się, że jesteś zalogowany na serwerze lokalnym MySQL i wybrałeś bazę danych, w której chcesz pracować.

Włóż nowy wiersz tylko wtedy, gdy dane nie istnieją przy użyciu instrukcji „Wstaw ignoruj”

Cóż, odpowiedź na pytanie w tytule jest dość prosta i prosta. Po prostu użyj „WSTAWIĆ”Słowo kluczowe wraz z„IGNOROWAĆ”Słowo kluczowe. Upewni się to, że nowe dane lub zapytanie do wstawki zostaną wykonywane tylko wtedy, gdy nie można znaleźć wcześniejszego wpisu danych w MySQL. Aby uzyskać krótki przegląd tego, spójrz na następującą składnię:

Wstaw ignoruj ​​do [nazwa tabeli] ([kolumn1-name], [kolumn2-nazwa], [kolumn3-name]) wartości ([wartość1], [wartość2], [wartość3]);

Zobaczmy przykład, jeśli użytkownik chce wprowadzić wartość wiersza „1”,„Jan" I "Łania" w "Klient„Tabela dla kolumn”ID,”„Imię" I "NazwiskoOdpowiednio. Uruchom to zapytanie, aby wstawić te wartości, jeśli żaden wiersz nie ma już tych wartości:

Wybierz * z klienta;
Wstaw ignoruj ​​do klienta (id, FirstName, LastName) wartości (1, „John”, „Doe”);

Wyjście zawiera dwie tabele wyświetlające dane z tabeli przed i po wykonaniu zapytania. W

Włóż nowy wiersz tylko wtedy, gdy dane nie istnieją przy użyciu klauzuli „gdzie nie istnieje”

W MySQL, „GDZIE NIE ISTNIEJE„Klauzula zapobiega wprowadzaniu wierszy, jeśli już istnieją w tabeli, gdy jest używana w„WŁÓŻ W”Oświadczenie z podziałem na zdefiniowanie stanu. Kiedy ta klauzula jest używana z podwodnym „(Wybierz * z [nazwa tabeli] [nazwa kolumny] = [wyrażenie]);”Sprawdza, czy w tabeli istnieje wiersz, który spełnia warunek. Jeśli istnieje rząd, „Gdzie nie istnieje„Klauzula zwróci fałszywą wartość i„WYBIERAĆ„Oświadczenie nie zwróci żadnych wierszy. W rezultacie rząd nie zostanie włożony do tabeli. Składnia jest podana poniżej:

Wstaw do [nazwa tabeli] ([kolumna1-name], [kolumn2-nazwa], [kolumn3-name]))
Wybierz [wartość1], [wartość2], [wartość3]
Gdzie nie istnieje (wybierz * z [nazwa tabeli] [nazwa kolumny] = [wyrażenie]);

Zobaczmy przykład, jeśli użytkownik chce wstawić wiersz w tabeli pracowników zawierającej wartości „1”,„Americanas" I "Henriot„W kolumnach”ID”,„Nazwa firmy" I "Nazwa KontaktuOdpowiednio. Ale tylko jeśli rząd z identyfikatorem „1”Nie można znaleźć w tabeli lub nie istnieje. W takim przypadku zapytanie stanie się:

Wybierz * od pracownika;
Wstaw do pracownika (identyfikator, nazwa firmy, nazwa kontaktowa)
Wybierz 1, „Americanas”, „Henriot”
Gdzie nie istnieje (wybierz * z pracownika, gdzie id = 1);

Wyjście wyświetla nowy wiersz, który nie jest wstawiany jako wiersz z „ID" równy "1„Już istniał.

Włóż nowy wiersz tylko wtedy, gdy dane nie istnieją przy użyciu klauzuli „On Duplicate Key Update”

Innym sposobem jest użycie „Na duplikatach kluczowych aktualizacji„Klauzula w MySQL. Ponieważ ta klauzula będzie używana z „Wstaw do”, tworząc wykonanie „IF-Else”. Oznacza to więc, że dane wewnątrz tabeli zostaną zaktualizowane tylko wtedy, gdy są unikalne. W przeciwnym razie nie wystąpiłaby żadna zmiana. Ogólna składnia dla tego jest następująca:

Wstaw do [nazwa tabeli] ([kolumn1-name], [kolumn2-name], [kolumn3-name]) wartości ([wartość1], [wartość2], [wartość3])
Na zduplikowanej aktualizacji klawisza [kolumna1-nazwa] = [kolumna1-nazwa];

Zobaczmy przykład, aby wstawić wartości w „2”,„Pascale”,„Nixon”,„Londyn”,„Wielka Brytania" I „(171) 555-7788" na stole "Klient”Dla kolumn„ID”,„Imię”,„Nazwisko”,„miasto”,„kraj" I "telefonOdpowiednio. Jeśli wiersz jeszcze nie istnieje, zostanie wstawiony. W przeciwnym razie zaktualizuje wartości, w których „Id = id„Stan się spotyka. Uruchom to zapytanie:

Wybierz * z klienta;
Wstaw do klienta (identyfikator, nazwa pierwszej, lastName, miasto, kraj, telefon)
Wartości (2, „Pascale”, „Nixon”, „London”, „UK”, „(171) 555-7788”)
Na zduplikowaniu aktualizacji klawisza id = id;

To jest stół przed uruchomieniem zapytania, możesz zobaczyć „ID" równy "2" nie istnieje:

Po uruchomieniu zapytania to zapytanie wstawię nowe wiersze w tabeli:

Z powodzeniem wstawiłeś nowy wiersz, ponieważ dane nie istnieją przed uruchomieniem zapytania.

Wniosek

W MySQL wstaw nowy wiersz tylko wtedy, gdy dane nie istnieją, używając „Wstaw ignoruj”Oświadczenie lub„Gdzie nie istnieje„Klauzula w„WŁÓŻ W" oświadczenie. Innym sposobem na to jest użycie „Na duplikatach kluczowych aktualizacji„Klauzula w„WŁÓŻ W”Instrukcja do aktualizacji, jeśli rząd już istnieje. W przeciwnym razie dodaj nowy wiersz. W poście omówiono sposób wstawienia nowego wiersza tylko wtedy, gdy dane nie istnieją.