Hỏi về cách dùng UNIQUE trong MySQL

Có yêu cầu về số áo từ 0 đến 90 và số áo của các cầu thủ trong một đội là không được trùng nhau nhưng cầu thủ của đội này có thể trùng số áo với đội kia.
Mình không rõ viết thế này đã đúng chưa vì yêu cầu là ràng buộc cho từng đội riêng rẽ.

create table player
( player_id varchar(16) NOT NULL,
team_id varchar(16) NOT NULL,
PlayerName varchar(50) NOT NULL,
PlayerNumber int NOT NULL,
Position varchar(50),
Birthdate date,
Nationality varchar(50),
Height float,
Weight float,
primary key(player_id),
unique (PlayerNumber),
CONSTRAINT check_player_number_range CHECK (PlayerNumber >= 0 AND PlayerNumber <= 90),
foreign key (team_id) references teams(team_id)
);

Không đúng vì khác đội vẫn trùng số áo được nên (team_id, PlayerNumber) cần unique.

2 Likes

Thank bác, kiến thức đã được tiếp thu :grin:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?