[mySQL] Uniknięcie dodawania duplikatów


(Krzkaczor) #1

Hej!

Chcę podczas dodawania nowego rekordu do bazy sprawdzić od razu czy taki już nie istnieje. Mam jedną kolumnę w pełni unikalną (inną od id :slight_smile: ) i to po niej chciałbym sprawdzać. Czy istnieje inne rozwiązanie niż SELECT i sprawdzenie ilości odpowiedzi?

Pozdrawiam i proszę o pomoc


(ra-v) #2

W MS SQL można napisać funkcję a w niej zapytanie typu CASE WHEN warunek THEN dodaj [ELSE wyrzuć komunikat] END. MySQL nie wiem czy to umożliwia.

Czy to musi być zrobione 100% w SQL?

Masz możliwość dostępu do PHP to spróbuj z nim.

SELECT id FROM tabela WHERE pole=wartosc

oraz w PHP sprawdzasz, czy mysql_num_rows() jest większe od 0. Jeśli tak to wstawiasz dane.


(Sitemaster) #3

można bez sprawdzania, wystarczy kolumnie nadać atrybut unikalna i się dubel już nie doda

można to zrobić w phpmyadminie, można też zmienić atrybut zapytaniem

ALTER TABLE tabela ADD UNIQUE (kolumna)

(Krzkaczor) #4

Tak, dokładnie zrobiłem to tak jak api polecił :slight_smile: Wielkie dzięki.