这篇文章主要记录自己学习mysql过程中遇到的关于主键包含多字段,而且后一字段是自动增长类型的。
例如:表album
------------------------------------------------------
aritist_id | album_id | album_name
-----------------------------------------------------
1 | 1 | boss drum
1 | 2 | entract
1 | 3 | bingo
....
3 | 1 | electric
3 | 2 | sonic temple
3 | 3 | adidas
字段artist_id 和album_i构成主键,而且album_id是自动增长类型,会根据artist_id不同而从1自动增长
代码:
create table album(
artist_id int(5) not null,
album_id int(4) not null auto_increment,
album_name char(128) default null,
primary key (artist_id, album_id)
) engine=myisam auto_increment=5 default charset = latin1;
这里的关键是最后设置engine=myisam这里,很多mysql默认的engine是innoDB,故这里要对engine进行重新设置,否则,是不能达到上述目的。
create table album(
artist_id int(5) not null,
album_id int(4) not null auto_increment,
album_name char(128) default null,
primary key (artist_id, album_id)
);这段代码是会报错的,提示自动增长的列必须是一个key,即你必须写成primary key (album_id, artist_id),这样album_id就不会根据artist_id来变化,它会一直增加,例如:
------------------------------------------------------
aritist_id | album_id | album_name
-----------------------------------------------------
1 | 1 | boss drum
1 | 2 | entract
1 | 3 | bingo
........
3 | 6 | electric
3 | 7 | sonic temple
3 | 8 | adidas
..............