MySQL多对多关系问题
我在mysql中有3个表,分别是艺术家的曲目和艺术家的曲目 我做了用aricle写的事 这是表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
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”为主键。