Primary key - error 1062. Klucz główny nie może się powtarzać

0

Hej. Mam problem ze wstawieniem danych do tabeli, która powinna mieć różne wersje językowe. Fragment tego kodu to:

insert into posilek (rodzaj, kod, jezyk) values ('Obiad','OB','pl_PL');
insert into posilek (rodzaj, kod, jezyk) values ('Dinner','OB','en_US');

Problem polega na tym, że zmienna kod to klucz główny i nie może on mieć wpisanej dwa razy wartości 'OB'.
Wyświetla mi się błąd: Error Code: 1062. Duplicate entry 'UW' for key 'PRIMARY'
Jak mogę pozbyć się tego błędu, żeby mieć wpisane w obu kolumnach kod 'OB'?

1

klucz główny w każdym wierszu musi mieć unikalną wartość ,tym samym nie wstawisz dwukrotnie wartości 'OB'
ps.

  • 'kod' to nie jest zmienna tylko pole w tabeli

Jak mogę pozbyć się tego błędu, żeby mieć wpisane w obu kolumnach kod 'OB'?

przeprojektować bazę, jeśli okazuje się że wartości w polu 'kod' mogą, lub muszą się powtarzać to pole 'kod' nie może być kluczem głównym

4

Potrzebujesz klucza złożonego czyli kluczem głównym powinny być obie kolumny kod, jezyk.
Ewentualnie może dodać nową unikalną wartość która będzie kluczem głównym, np. generowaną z sekwencji

1

@KamilAdam:

Ewentualnie może dodać nową unikalną wartość która będzie kluczem głównym, np. generowaną z sekwencji

I to jest najlepsze rozwiązanie, sztuczny klucz główny. Klucze naturalne stwarzają wiele problemów

1 użytkowników online, w tym zalogowanych: 0, gości: 1