Chapter2 MySQL的主键、外键、自增
文章目录
Chapter2 MySQL的主键、外键、自增一、主键二、外键三、自增
一、主键
primary key (nid
,pid
);
二、外键
1.外键
create table department
(
id
bigint auto_increment primary key,
title
char(15)
)engine=innodb default charset=utf8
;
create table userinfo
(
uid
bigint auto_increment primary key,
name
varchar(32),
department_id
int,
constraint fk_user_depart
foreign key(department_id
) references department
(id
)
)engine=innodb default charset=utf8
;
注:当表
1中主键采用多列的时候,表
2中的外键可以连两个,如下(使用
foreign key的表
2则不需要采用多列主键)
表
1中:
primary key(nid
,pid
)
表
2中:
constraint fk_t1_t2
foreign key(id1
,id2
) references t1
(nid
,pid
)
2.外键变种(
1对N):普通外键
3.外键变种(
1对
1):FK
()+唯一索引约束
unique 唯一索引名称
(列名
)
4.外键变种(N对N):FK
()+联合唯一索引约束
unique 唯一索引名称
(列名,列名
)
注:唯一索引不能重复,可以为空
主键不能重复,不能为空
三、自增
1.基本操作
desc t1
;
show create table t1
;
show create table t1\G
;
alter table t1
auto_increment=20;
2.MySQL的自增步长
基于会话级别(登录自己账号时,下线即失效):
show session variables
like 'auto_inc%';
set session auto_increment_increment
=2;
set session auto_increment_offset
=10;
基于全局级别(再开会话,再登录其他账号都不失效):
show global variables
like 'auto_inc%';
set global auto_increment_increment
=2;
set global auto_increment_offset
=10;