Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: If exist
Forum PHP.pl > Forum > Bazy danych > MySQL
cadavre
Mam tabelę z trzema polami: 'id', 'nazwa' oraz 'tytul'. Teraz chciałbym aby przy dodawaniu nowego wpisu do tabeli sprawdzał czy przypadkiem nie istnieje już identyczny z taką samą 'nazwa'. Jeśli istnieje, aby nie tworzył nowego wpisu a powiadamiał komunikatem, że wpis o takiej 'nazwa' już istnieje. Jak to zrobić?
dr_bonzo
Najpierw SELECT, a potem UPDATE lub INSERT. Nie da sie tego zrobic jednym zapytaniem.
Ew. jak zalozysz klucz unique to nie powinno ci pozwolic dodac drugiego rekordu z taka sama wartoscia (exclamation.gif! Nie znam sie za bardzo na kluczach wiec musisz sprawdzic) -> mysql_query zwroci false.
ArturS
Jeśli baza ma być na zawsze tak używana, że kolumna 'nazwa' ma być unikatowa, to może po prostu zmień własności kolumny dodając UNIQUE, by zablokować możliwość zdublowania nazwy, czyli

ALTER TABLE nazwa_tabeli
CHANGE COLUMN nazwa nazwa typ_danych UNIQUE inne_własności

jednak w tym wypadku nie bardzo widzę sens istnienia kolumny 'id' chyba, że jeden 'id' będzie przyporządkowywany do różnych nazw. Unikatowość kolumny 'nazwa' pozawala użyć jej jako klucza głównego.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.