/ / MySQL: problem z ustawieniem unikalnego ograniczenia kombinacji wierszy - mysql, baza danych, unikalny

MySQL: ustawienie unikalnego ograniczenia dla kombinacji wierszy - mysql, database, unique

Próbuję ustawić unikalne ograniczenie dla kombinacji kolumn, a nie dla pojedynczej kolumny. Mam tabelę „tagi”:

  • id (int, PK, AI, bez znaku)
  • tag (varchar 25)
  • user_id (int, unsigned)

Po odpowiedzi na to pytanie, Próbowałem ustawić ograniczenie kombinacji za pomocą:

ALTER TABLE `tags` ADD UNIQUE `unique_tag_user_combo` (`tag`, `user_id`);

Jak na razie dobrze. Ale kiedy przychodzę go przetestować, sprawdzając, czy pozwoli mi wstawić ten sam tag dwa razy, ale z różnymi identyfikatorami użytkowników (to powinien), błędy:

INSERT INTO `tags` VALUES (NULL, "foo", "1"), (NULL, "foo", "2")

... rzuca ...

Duplicate entry "foo" for key "name_2"

Pamiętaj, że unikalne ograniczenie jest w zestawietag + user_id, więc moim zdaniem to zapytanie powinno działać poprawnie. Mógłbym zrozumieć ten błąd, gdybym próbował wstawić dwa razy foo / 1, ale nie foo / 1 i foo / 2. Czego mi brakuje?

(EDYCJA - także, o czym jest to odwołanie „nazwa_2” w komunikacie o błędzie? Nie mam kolumny o tej nazwie ...)

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz także mieć unikalny indeks na kolumnie znaczników

SHOW CREATE TABLE yourtb