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)
)
Était-ce utile?

La solution

You don't need UNIQUE here. PRIMARY KEY will make sure there is no duplicate (userID,securityID) pairs.

Autres conseils

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.

Creating Unique Indexes

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top