2011-08-17 100 views
0

我在mysql中有3個表格artiststracksartist_tracks 我做了什麼寫在this的文章裏。MySQL多對多關係問題

這是表artist:artist_id,這位演出 tracks:track_id,TRACK_NAME artist_tracksartist_idtrack_id

如何防止在artist_tracks表中重複的行?

+2

如果您已經構建了您的主鍵正常,你應該不能夠創建重複行。 – Jrod

+0

將artist_id **和** track_id聲明爲artist_tracks中的主鍵。 –

回答

5

圍繞artist_idtrack_id列創建複合主鍵。這是橋表的標準做法。

ALTER TABLE artist_tracks DROP PRIMARY KEY; 
ALTER TABLE artist_tracks ADD PRIMARY KEY (artist_id, track_id); 

如果你正確地閱讀了這篇文章,你應該已經有了這樣的密鑰,所以重複將是不可能的。

0

創建一個unique index

CREATE UNIQUE INDEX artist_id_track_id ON artist_tracks (artist_id, track_id); 
0

如果你做了什麼在鏈接中,你已經防止重複。

CREATE TABLE `x` (
    `a_id` varchar(6) NOT NULL default '', 
    `b_id` varchar(6) NOT NULL default '', 
    PRIMARY KEY (`a_id`,`b_id`) 
) 

此代碼通過從藝術家和曲目的ID創建複合主鍵來爲您做到這一點。