cadavre
8.01.2006, 20:01:36
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
8.01.2006, 20:12:59
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 (

! Nie znam sie za bardzo na kluczach wiec musisz sprawdzic) -> mysql_query zwroci false.
ArturS
8.01.2006, 22:18:44
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.