MySQL多对多关系问题

MySQL多对多关系问题,mysql,many-to-many,Mysql,Many To Many,我在mysql中有3个表,分别是艺术家的曲目和艺术家的曲目 我做了用aricle写的事 这是表artist:artist\u id,artist\u name 曲目:曲目id、曲目名称 artist\u tracks:artist\u id,track\u id 如何防止artist_曲目中的重复行table 围绕artist\u id和track\u id列创建一个复合主键。这是桥台的标准操作规程 ALTER TABLE artist_tracks DROP PRIMARY KEY; ALTE

我在mysql中有3个表,分别是艺术家的曲目和艺术家的曲目 我做了用aricle写的事

这是表
artist
:artist\u id,artist\u name
曲目
:曲目id、曲目名称
artist\u tracks
artist\u id
track\u id


如何防止
artist_曲目中的重复行
table

围绕
artist\u id
track\u id
列创建一个复合主键。这是桥台的标准操作规程

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

如果您正确地阅读了那篇文章,您应该已经有了这样一个键,因此不可能重复。

artist\u id
track\u id
列周围创建一个复合主键。这是桥台的标准操作规程

ALTER TABLE artist_tracks DROP PRIMARY KEY;
ALTER TABLE artist_tracks ADD PRIMARY KEY (artist_id, track_id);
如果您正确地阅读了这篇文章,您应该已经有了这样一个密钥,因此不可能有重复的密钥。

创建一个密钥

创建一个


如果您执行了链接中的操作,则已在防止重复

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

此代码通过从艺术家和曲目的ID生成复合主键来为您做到这一点。

如果您执行了链接中的操作,您已经在防止重复

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

这段代码通过从艺术家和曲目的ID生成一个复合主键来实现这一点。

您需要组连接和3个表上的“复杂”连接,
看这把小提琴:

你需要在3张桌子上进行分组连接和“复杂”连接,
请参阅此提琴:

如果您正确构造了主键,则不应创建重复的行。在“艺术家”轨迹中声明“艺术家id”和“轨迹id”为主键。如果您正确构造了主键,则不应创建重复的行。在“艺术家”轨迹中声明“艺术家id”和“轨迹id”为主键。