欢迎光临散文网 会员登陆 & 注册

约束性条件2

2021-09-11 20:57 作者:海鸥之道  | 我要投稿

1、primary key

特征: 不能重复,且不可以为空。

innodb存储引擎,一张表内必须有一个主键。

可以不指定主键,但是一旦mysql识别标的类型时innodb,它就开始寻找字段,找不为空且唯一的字段为主键,若找不到,就用隐藏的字段。

所以 innodb 建一个表,应该指定一个主键。

单列主键:

如果插入重复的id:

会报错:

因为primary key,不为空且唯一

复合主键:

多个字段联合成为主键。例如:

插入内容:

2、auto

建表的时候,必须要有的ID字段,这个用来表示第几条记录,这样每次都需要添加比较繁琐,可以找到一个方式自动添加。

自增长的字段必须是一个key:

可以实现自动添加id,同时也可以手动传值

# 修改默认起始偏移量和单步步长

show variables like 'auto_inc%';  #查询当前状态  % 任意个数的任意字符

1)步长

auto_increment_increment 默认为1

2)起始偏移量

auto_increment_offset默认1

3)设置步长

会话级别 ,本次连接有效

全局,所有会话都有效,前提是重启会话加载这条语句

4)设置起始偏移量 ,一定要小于步长的

设置完,需要关闭会话,exit,然后再 mysql进入,

然后创建个表,查看插入数据时,id分布:

插入数据:

可以看到此时初始序号3,步长5.

在这里,补充一下    清空表方式:

delete from t20; 清除全部内容

用delete清空表后,查询表,发现此时innodb引擎将id定位在23,也就是说,再向里面插入数据,id计数冲23开始,意味着delete并没有把表真正的清空。

所以清空表不要用delete ,常跟where 匹配使用,删除固定字段用。清空表应用:

truncate t20; 


约束性条件2的评论 (共 条)

分享到微博请遵守国家法律