簡體   English   中英

創建主鍵或唯一鍵

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM