首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建外键时,自动递增是否会影响?

创建外键时,自动递增是否会影响?
EN

Stack Overflow用户
提问于 2012-05-18 00:11:19
回答 2查看 510关注 0票数 0

我正在使用InnoDB,并且还在学习MYSQL。我在试着把歌和专辑联系起来。是不是我的数据库中有什么东西导致了这个问题?下面是我的表格。

代码语言:javascript
复制
Albums
•   albumID – int(11)
•   albumpic – varchar(255)
•   albumthpic – varchar(255)
•   albumTitle – varchar(255)
•   performer – varchar(255)
•   type – set (ex: ep, sp, studio)
•   titletrack – varchar(255)
•   genre
•   releasedate – date
•   distributor – varchar(255)
•   page – varchar(255)
Songs
•   songID – int(11)
 albumID - int(11)
•   albumpic – varchar(255)
•   tracknum – int(11)
•   songTitle – varchar(255)
•   performer – varchar(255)
•   album – varchar(255)
•   page – varchar(255)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-18 00:24:20

不知道你在寻找什么,但是如果你正在寻找如何创建foriegn key并链接到主表的主键,那么你可以这样做:

代码语言:javascript
复制
create table Songs
(songID int(11) int not null auto_increment primary key,
albumpic varchar(255),
tracknum int(11),
songTitle varchar(255), 
performer varchar(255),
album varchar(255),
page varchar(255),
albumID int(11),
foreign key (albumID) references Albums (albumID) on delete cascade)
票数 1
EN

Stack Overflow用户

发布于 2012-05-18 00:19:49

假设每首歌曲(可选)都属于一张专辑;在这种情况下,Songs表需要一个外键来引用Albums表中的相关记录。例如,您可以添加一个albumID列:

代码语言:javascript
复制
ALTER TABLE Songs
  ADD COLUMN albumID int(11) [NOT] NULL,
  ADD INDEX (albumID),
  ADD FOREIGN KEY (albumID) REFERENCES Albums (albumID);

如果一首歌曲可能与多张专辑相关,则需要创建第三个表,其中包含两个外键-歌曲的外键和关联专辑的外键(例如songIDalbumID):

代码语言:javascript
复制
CREATE TABLE AlbumSongs (
  songID  int(11) NOT NULL,
  albumID int(11) NOT NULL,
  PRIMARY KEY (songID, albumID),
  INDEX (albumID),
  FOREIGN KEY (songID)  REFERENCES Songs  (songID),
  FOREIGN KEY (albumID) REFERENCES Albums (albumID)
);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10639397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档