[英]Creating Primary Keys or Unique Keys
我正在嘗試創建一個名為播放列表的表。
用戶不能多次創建具有相同名稱的播放列表,並且不能多次將同一首歌曲添加到播放列表中。
我試圖創建一個復合鍵,但它不起作用。
有人可以指導如何完成這項任務嗎?
當我按照代碼中的方式進行操作時,我收到重復條目的錯誤。
我可以插入初始條目,但是,即使 SongCode 不同,我也會收到重復條目的錯誤。
CREATE TABLE Playlists (
SongCode varchar(400) NOT NULL,
PlaylistName varchar(400) NOT NULL,
UserCode varchar(400) NOT NULL,
Entry_At datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)
);
ALTER TABLE Playlists
ADD Primary KEY (UserCode,PlaylistName),
ADD UNIQUE KEY SongCode_PlaylistName (SongCode,PlaylistName);
樣本數據
INSERT INTO Playlists (SongCode, PlaylistName, UserCode) VALUES
('0bc4bb05-e8fa-11e9-a21e-86ae283e70f9', 'Test1', '20cbd799-de71-11e9-8269-86ae283e70f7')
INSERT INTO Playlists (SongCode, PlaylistName, UserCode) VALUES
('0bc4bb05-e8fa-11e9-a21e-86ae283e70f10', 'Test1', '20cbd799-de71-11e9-8269-86ae283e70f7')
CREATE TABLE Playlists (
SongCode varchar(400) NOT NULL,
PlaylistName varchar(400) NOT NULL,
UserCode varchar(400) NOT NULL,
Primary KEY(UserCode,PlaylistName),
CONSTRAINT SongCode_PlaylistName UNIQUE(SongCode,PlaylistName),
Entry_At datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)
);
ALTER TABLE Playlists
嘗試這個。
CREATE TABLE Playlists (
id INT NOT NULL AUTO_INCREMENT,
SongCode varchar(400) NOT NULL,
PlaylistName varchar(400) NOT NULL,
UserCode varchar(400) NOT NULL,
Entry_At datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
PRIMARY KEY (id)
);
ALTER TABLE Playlists
如果正確,請檢查: https://dbfiddle.uk/?rdbms=mysql_5.7&fiddle=db70a568504cf0b2a27119c4e2f55d77 :D
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.