php mysql外键如何插入主键的自增长id,MySQL之外键、主键、自增

1、创建外键

create table userinfo(

uid int auto_increment primary key,

name varchar(32),

department_id int,

xx_id int,

constraint fk_user_depar foreign key (“department_id”) references color(“id”)

)engine=innodb default charset=utf8;

create table department(

id bigint auto_increment primary key,

title char(15)

)engine=innodb default charset=utf8;View Code

2、补充主键:

一个表只能有一个主键

主键可以由多列组成:

create table t1(

nid int(11) notnull auto_increment,

pid int(11) notnull ,

num int(11) null,

primary key(nid,pid)

) engine=InnoDB default charset=utf8;View Code

例:

CREATE TABLE t5 (

nid int(11) NOT NULL AUTO_INCREMENT,

pid int(11) not NULL,

num int(11),

primary key(nid,pid)    #此时nid,pid整体作为主键,下面就可以整体进行关联

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

create table t6(

id int auto_increment primary key,

name char(10),

id1 int,

id2 int,

CONSTRAINT fk_t5_t6 foreign key (id1,id2) REFERENCES t1(nid,pid)    #nid,pid整体作为主键(这个是前提条件),所以这里关联了两个

)engine=innodb default charset=utf8;

注:上面foreign key的名字fk_t5_t6不能重复

3、自增补充

上面的AUTO_INCREMENT=4表示下一次插入数据的时候id从4开始自增,如果想要定制从10开始自增:

alter table t10 AUTO_INCREMENT=10;

MySQL:自增步长

3.1基于会话级别:(*****)

一次mysql登录就是一次会话,在当前mysql中设置了步长,再打开一个新的mysql后,新的mysql中步长还是默认为1

3.1.1 show session variables like 'auto_inc%'; 查看全局的步长,默认为1

可以知道步长为1

3.1.2 set session auto_increment_increment=2; 设置会话步长

可以看出全局步长被设置为2

添加数据id的步长就按照2增加

3.1.3 # set session auto_increment_offset=10; 设置会话起始值,一般用不到,因为我们在表中已经规定好了

3.2 基于全局级别

在当前全局中修改步长之后,再开会话(打开新的mqsql)都会以你设置的全局步长默认设置,不推荐此种方式

3.2.1 show global variables like 'auto_inc%';     查看全局变量

set global auto_increment_increment=2;     设置会话步长

# set global auto_increment_offset=10;      设置全局起始值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值