Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak sprawdzić, czy wartość już istnieje w tabeli?

Użyj unique constraint . Spróbuj wstawić/zaktualizować rekord i przechwycić wyjątek zgłoszony, gdy zostanie naruszone ograniczenie przez unikalność. Tylko w ten sposób można zagwarantować unikalny adres e-mail; najpierw sprawdzanie, a następnie aktualizowanie jest podatne na problemy ze współbieżnością, ponieważ możliwe jest, że ktoś inny zaktualizuje swój rekord do tej samej wartości, którą próbujesz ustawić tuż po wykonaniu sprawdzenia i przed aktualizacją rekordu.

Również:dowiedz się, jak używać where -klauzule. Teraz pobierasz WSZYSTKIE rekordy, powtarzasz je itd., co zajmuje niepotrzebnie dużo zasobów, zajmuje zbyt dużo czasu i jest zwykłym marnotrawstwem. Jeśli chcesz sprawdzić rekord spełniający podane przez Ciebie kryteria:

Select foo, bar from table where baz = 123

Gdzie baz = 123 jest twoim kryterium. Wyobraź sobie, co by się stało, gdy w obecnej konfiguracji masz 500, a nawet 500 000 rekordów. Baza danych wykona Twoje zapytanie, zbierze WSZYSTKIE wiersze z tej bazy danych, przeniesie je do Twojej aplikacji, gdzie Twoja aplikacja będzie iterować wszystkie 500 000 wyników. Lub poproś DB, aby zrobił to, w czym jest dobry (i dlaczego go używasz w pierwszej kolejności):Daj/wszystkie rekordy, które pasują do kryterium X. Otrzymasz 1 lub żaden rekord (biorąc pod uwagę unikatowe ograniczenie):1 =niektóre rekordy spełniające kryterium, brak =brak rekordów. Oszczędza przenoszenie i „ręczne przeglądanie” 499 999 rekordów;-)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wydajność PHP vs MySQL ( if , funkcje ) w zapytaniu

  2. Używanie PHP do przesyłania obrazów do folderu podczas zapisywania opisów w bazie danych

  3. Konwertowanie ciągu znaków na format znacznika czasu MySQL w php

  4. Aktualizowanie bazy danych SQL za pomocą wartości pól wyboru

  5. MySQL:@zmienna a zmienna. Co za różnica?