[英]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.