Korzystam z bazy danych mysql. Mam pomyłkę między kluczem podstawowym a kluczem unikatowym.
Pomóż mi, gdzie powinienem utworzyć klucz podstawowy i unikalny. Mam na myśli, w której sytuacji tworzymy unikalny klucz lub klucz podstawowy.
Korzystam z bazy danych mysql. Mam pomyłkę między kluczem podstawowym a kluczem unikatowym.
Pomóż mi, gdzie powinienem utworzyć klucz podstawowy i unikalny. Mam na myśli, w której sytuacji tworzymy unikalny klucz lub klucz podstawowy.
PRIMARY KEY = UNIQUE KEY + Not Null CONSTRAINT
Odpowiedzi:
Klucz podstawowy:
NULL
- np. MySQL dodajeNOT NULL
Unikalny klucz:
NULL
wartościNULL
; wiele wierszy może miećNULL
wartości i dlatego nie może być uważane za „unikalne”źródło
Unikalny klucz (Wielka Brytania) : jest to kolumna lub grupa kolumn, które mogą zidentyfikować niepowtarzalność z rzędu.
Primary Key (PK) : To też kolumna lub grupa kolumn, które mogą zidentyfikować unikalność w wierszu.
Tak więc klucz podstawowy to po prostu inna nazwa klucza unikalnego, ale domyślna implementacja w SQL Server jest inna dla klucza podstawowego i unikalnego.
Domyślnie:
To naprawdę zależy od tego, jaki jest twój cel przy podejmowaniu decyzji o utworzeniu Wielkiej Brytanii czy PK. Wynika to z analogii: „Jeśli jest zespół trzech osób, więc wszyscy są rówieśnikami, ale będzie jeden z nich, który będzie parą rówieśników: PK i UK mają podobny związek”. Sugerowałbym przeczytanie tego artykułu: Przykład podany przez autora może nie wydawać się odpowiedni, ale spróbuj uzyskać ogólny pomysł.
http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html
źródło
[table_name]_pkey
tabela ( z domyślną nazwą ) jest dodawana do tabeli (słyszałem, że jest to nazywane kluczem zastępczym). Źródło: postgresqltutorial.com/postgresql-primary-key Jestem nowy w tym wszystkim, więc doceniłbym bardziej kompetentny plakat, aby wskazać niuanse, które przegapiłem.W przypadku organizacji lub firmy istnieje tak wiele podmiotów fizycznych (takich jak ludzie, zasoby, maszyny itp.) I podmiotów wirtualnych (ich zadania, transakcje, działania). Zazwyczaj firma musi rejestrować i przetwarzać informacje o tych podmiotach gospodarczych. Te podmioty gospodarcze są identyfikowane w całej domenie biznesowej za pomocą klucza.
Według prospektywnego RDBMS klucz (zwany również kluczem kandydującym) to wartość lub zestaw wartości, które jednoznacznie identyfikują jednostkę.
W przypadku tabeli DB istnieje tyle kluczy, które mogą kwalifikować się do klucza podstawowego. Aby wszystkie klucze, klucz podstawowy, klucz unikalny itp. Były wspólnie nazywane kluczem kandydującym. Jednak DBA wybrał klucz z klucza kandydata do wyszukiwania rekordów nazywa się kluczem podstawowym.
Różnica między kluczem podstawowym a kluczem unikalnym
1. Zachowanie: Klucz podstawowy służy do identyfikacji wiersza (rekordu) w tabeli, podczas gdy klucz unikalny służy do zapobiegania duplikowaniu wartości w kolumnie (z wyjątkiem wpisu zerowego).
2. Indeksowanie: Domyślnie silnik SQL tworzy Indeks klastrowany na kluczu podstawowym, jeśli nie istnieje, oraz Indeks nieklastrowany na kluczu unikatowym.
3. Nullability: klucz podstawowy nie zawiera wartości Null, podczas gdy klucz unikalny może.
4. Istnienie: Tabela może mieć najwyżej jeden klucz podstawowy, ale może mieć wiele unikalnych kluczy.
5. Modyfikowalność: Nie możesz zmieniać ani usuwać wartości pierwotnych, ale wartości Unikalnego klucza mogą.
Aby uzyskać więcej informacji i przykładów:
http://dotnetauthorities.blogspot.in/2013/11/Microsoft-SQL-Server-Training-Online-Learning-Classes-Integrity-Constraints-PrimaryKey-Unique-Key_27.html
źródło
Klucz podstawowy musi być unikalny.
Unikalny klucz nie musi być kluczem podstawowym - patrz klucz kandydujący .
Oznacza to, że w tabeli może znajdować się więcej niż jedna kombinacja kolumn, która może jednoznacznie identyfikować wiersz - tylko jedną z nich można wybrać jako klucz podstawowy. Pozostałe, choć unikalne, to klucze kandydujące.
źródło
Szczegółowe informacje można znaleźć na stronie :
http://www.dotnet-tricks.com/Tutorial/sqlserver/V2bS260912-Difference-between-Primary-Key-and-Unique-Key.html
źródło
Klucz podstawowy ma semantyczną identyfikację wiersza bazy danych. Dlatego może istnieć tylko jeden klucz podstawowy dla danej tabeli, podczas gdy może istnieć wiele unikalnych kluczy.
Również z tego samego powodu kluczem podstawowym nie może być NULL (przynajmniej w Oracle, nie jestem pewien co do innych baz danych)
Ponieważ identyfikuje wiersz, nigdy nie powinien się nigdy zmieniać. Zmiana kluczy podstawowych z pewnością spowoduje poważny ból i prawdopodobnie wieczne potępienie.
Dlatego w większości przypadków potrzebujesz jakiegoś sztucznego identyfikatora klucza podstawowego, który nie jest używany do niczego poza identyfikacją pojedynczych wierszy w tabeli.
Z drugiej strony unikalne klucze mogą się zmieniać tak, jak chcesz.
źródło
Klucz podstawowy jest unikalnym kluczem.
Każda tabela musi mieć co najwyżej JEDEN klucz podstawowy, ale może mieć wiele unikatowych kluczy. Klucz podstawowy służy do jednoznacznej identyfikacji wiersza tabeli. Klucz podstawowy nie może być,
NULL
ponieważNULL
nie jest wartością.źródło
źródło
Wiem, że to pytanie ma kilka lat, ale chciałbym udzielić odpowiedzi na to wyjaśnienie, a nie jak
Cel klucza podstawowego : jednoznaczna identyfikacja wiersza w bazie danych => Wiersz reprezentuje pojedyncze wystąpienie typu encji modelowane przez tabelę. Klucz podstawowy wymusza integralność jednostki, AKA Entity Integrity. Klucz podstawowy byłby indeksem klastrowym, tzn. Określa kolejność fizycznego przechowywania danych w tabeli.
Cel unikalnego klucza : Ok, dzięki kluczowi głównemu mamy sposób na unikalną identyfikację wiersza. Ale potrzebuję takiej działalności, że inna kolumna / zestaw kolumn powinna mieć unikalne wartości. Technicznie, biorąc pod uwagę, że ta kolumna (kolumny) jest unikalna, może być kandydatem do egzekwowania integralności jednostki. Ale z tego co wiemy, ta kolumna może zawierać dane pochodzące z organizacji zewnętrznej, co do których mam wątpliwości, że jestem wyjątkowa. Nie mogę ufać, że zapewni integralność jednostki. Po prostu sprawiam, że jest to unikalny klucz do spełnienia moich wymagań biznesowych.
Proszę bardzo!
źródło
Jeśli projekt bazy danych jest taki, że nie wymaga klucza obcego, możesz przejść do klucza unikalnego ( ale pamiętaj, że klucz unikalny pozwala na pojedynczą wartość zerową ).
Jeśli baza danych wymaga klucza obcego, to wychodzisz bez wyboru, musisz iść z kluczem podstawowym.
Aby zobaczyć różnicę między kluczem unikalnym a kluczem podstawowym, odwiedź tutaj
źródło
1) klucz podstawowy w kolumnie, który nie może mieć wartości NULL w tabeli i używasz jako klucza obcego w innej tabeli do tworzenia relacji
2) unikalny klucz w tabeli, który nie wpływa na tabelę lub całą bazę danych, niezależnie od tego, czy weźmiesz wartość null dla konkretnej kolumny, jak przekąski w restauracji, możliwe, że nie bierzesz przekąsek w restauracji
źródło
różnica między kluczem podstawowym a kluczem unikalnym
Oba
Primary key
iUnique Key
służą do jednoznacznego zdefiniowania wiersza w tabeli.Primary Key
tworzy aclustered index
kolumny, podczas gdy aUnique creates an unclustered index of the column
.A Primary Key
nie zezwalaNULL value
, jednaka Unique Key
zezwalaone NULL value
.źródło
Po prostu klucz podstawowy jest unikatowy i nie może być zerowy, unikatowy może być zerowy i może nie być niepowtarzalny.
źródło
may not be unique
znaczy tutaj?Klucze podstawowe
Głównym celem klucza podstawowego jest zapewnienie sposobu identyfikacji każdego rekordu w tabeli.
Klucz podstawowy umożliwia identyfikację wiersza przy użyciu danych w wierszu. Klucz podstawowy może być oparty na jednej lub więcej kolumnach, takich jak imię i nazwisko; jednak w wielu projektach kluczem podstawowym jest automatycznie wygenerowany numer z kolumny tożsamości.
Klucz podstawowy ma następujące cechy:
Unikalne klucze
Unikalny klucz jest również nazywany ograniczeniem unikalnym. Można zastosować unikalne ograniczenie, aby zapewnić unikalność wierszy w bazie danych.
Czy nie robimy tego już z kluczem podstawowym? Tak, robimy, ale tabela może zawierać kilka zestawów kolumn, które chcesz wyjątkowy.
W SQL Server unikalny klucz ma następujące cechy:
źródło: tutaj
źródło
Główne cechy klucza podstawowego to:
Musi zawierać unikalną wartość dla każdego wiersza danych. Nie może zawierać wartości null. Tylko jeden klucz podstawowy w tabeli.
Główne cechy Unikalnego klucza to:
Może także zawierać unikalną wartość dla każdego wiersza danych.
Może także zawierać wartości null.
Wiele unikalnych kluczy w tabeli.
źródło