我正在使用InnoDB,并且还在学习MYSQL。我在试着把歌和专辑联系起来。是不是我的数据库中有什么东西导致了这个问题?下面是我的表格。
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)发布于 2012-05-18 00:24:20
不知道你在寻找什么,但是如果你正在寻找如何创建foriegn key并链接到主表的主键,那么你可以这样做:
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)发布于 2012-05-18 00:19:49
假设每首歌曲(可选)都属于一张专辑;在这种情况下,Songs表需要一个外键来引用Albums表中的相关记录。例如,您可以添加一个albumID列:
ALTER TABLE Songs
ADD COLUMN albumID int(11) [NOT] NULL,
ADD INDEX (albumID),
ADD FOREIGN KEY (albumID) REFERENCES Albums (albumID);如果一首歌曲可能与多张专辑相关,则需要创建第三个表,其中包含两个外键-歌曲的外键和关联专辑的外键(例如songID和albumID):
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)
);https://stackoverflow.com/questions/10639397
复制相似问题