You don't need UNIQUE here. PRIMARY KEY will make sure there is no duplicate (userID,securityID) pairs.
In SQL does a Primary Key in a create table enforce uniqueness?
-
26-06-2022 - |
Question
Im wondering if on a relational table I set the two values below as a PRIMARY KEY if that automatically makes the table know that all entries should be unique....
CREATE TABLE UserHasSecurity
(
userID int REFERENCES Users(userID) NOT NULL,
securityID int REFERENCES Security(securityID) NOT NULL,
PRIMARY KEY(userID,securityID)
)
or do I need to be more explicit like this...
CREATE TABLE UserHasSecurity
(
userID int REFERENCES Users(userID) NOT NULL,
securityID int REFERENCES Security(securityID) NOT NULL,
PRIMARY KEY(userID,securityID),
UNIQUE(userID,securityID)
)
Solution
OTHER TIPS
No, you don't need to specify UNIQUE
in addition to PRIMARY KEY
. A primary key by definition must be unique.
A PRIMARY KEY
has to be unique, so you only need to declare as a primary key. The underlying index is unique by definition.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow