mysql - 表字段值自增(auto_increment)
路的好坏不在于崎岖多少, 只在于谁能最终达到目标。——申宝峰
- auto_increment是MySQL唯一扩展的完整性约束,当向数据库表中插入新纪录时,字段上的值会自动生成唯一的id。在设置具体的auto_increment约束时,一个数据库表中只能有一个字段使用该约束,并且该字段必须是整数类型。
-- 新建学生表
CREATE TABLE student (id INT(6) NOT NULL PRIMARY KEY AUTO_INCREMENT,name VARCHAR(8),sex CHAR(1)
);
-- 插入数据
INSERT INTO student VALUES(NULL, "王五", 'b');
INSERT INTO student VALUES(NULL, "张三", 'g');
结果如下:
- 刷新表之后可以看出,id的值默认从1开始
- InnoDB引擎的自增值每次重启后,第一次打开表的时候,都会去找自增值的最大值max,然后将max+步长作为这个表当前的自增值
- 如果指定具体的值,倘若这个值小于目前的自增字段的最大值,则输入失败,相反,如果大于则插入成功,但下一次自增则是在自增值得最大值基础上自增。
INSERT INTO student VALUES(20, "小七", 'g');
结果如图:
- – last_insert_id()查看自增值,不带参数时,
-- 该函数返回最近一个insert语句生成的第一个自动增长列的值(最大的),值为bigint unsigned类型。
select last_insert_id();
- 当你删除了自增字段的最大值的时候,如果你插入新的数据的时候,它会在你没删除的时候的最大值得基础上加1,而不是在你删除后的最大值加1。
-- 修改当前auto_increment值
alter table db1.student auto_increment= num; # num 为你要更新的字段最大值的值
完整代码:
show DATABASES; # 显示当前存在的数据库
create database db1; # 创建数据库
create database db2; # 创建数据库
use db1; # 选择数据库
drop database db2; # 删除数据库
-- show engines; # 查看支持的存储引擎
-- 新建学生表
CREATE TABLE student (id INT(6) NOT NULL PRIMARY KEY AUTO_INCREMENT,name VARCHAR(8),sex CHAR(1)
);-- 插入数据
INSERT INTO student VALUES(NULL, "王五", 'b');
INSERT INTO student VALUES(NULL, "张三", 'g');-- 修改当前auto_increment值
alter table db1.student auto_increment=4;-- 插入数据
INSERT INTO student VALUES(NULL, "李四", 'b');
INSERT INTO student VALUES(NULL, "小七", 'g');
INSERT INTO student VALUES(NULL, "李四", 'b');
INSERT INTO student VALUES(NULL, "小七", 'g');
INSERT INTO student VALUES(NULL, "李四", 'b');
INSERT INTO student VALUES(NULL, "小七", 'g');
INSERT INTO student VALUES(NULL, "李四", 'b');
INSERT INTO student VALUES(NULL, "小七", 'g');
INSERT INTO student VALUES(NULL, "李四", 'b');
INSERT INTO student VALUES(NULL, "小七", 'g');
INSERT INTO student VALUES(NULL, "李四", 'b');
INSERT INTO student VALUES(20, "小七", 'g');
INSERT INTO student VALUES(2, "小七", 'b');-- last_insert_id()查看自增值,不带参数时,
-- 该函数返回最近一个insert语句生成的第一个自动增长列的值(最大的),值为bigint unsigned类型。
select last_insert_id();
mysql - 表字段值自增(auto_increment)相关推荐
- mysql表字段值处理回车符换行符
查询数据库时,字段值一直无法匹配上,但是看数据库,觉得没问题,仔细排查后,发现可能是数据入口有问题,导致这个字段的所有的值,后面都加的有回车和换行符. 鼠标悬浮时没问题,但是如果真正的点击这个字段时, ...
- 列的完整性约束——设置表字段值自动增加(AUTO_INCREMENT)
系列文章目录 列的完整性约束 文章目录 系列文章目录 前言 一.语句格式 二.实际应用 总结 前言 AUTO_INCREMENT是MySQL唯一扩展的完整性约束,当向数据库表中插入新记录时,字段上的值 ...
- c mysql 的默认值_为mysql表字段设置默认值的方法及注意细节
为mysql表字段设置默认值的方法及注意细节,有需要的朋友可以参考下. 环境:MySQL 5.1 + 命令行工具 问题:MySQL表字段设置默认值 解决方法: 代码如下: --SQL: CREATE ...
- mysql 整型默认值,MySQL表字段设立默认值
mysql表字段设置默认值 环境 MySQL 5.1 + 命令行工具 问题 MySQL表字段设置默认值 解决 --SQL: CREATE TABLE test( i_a int NOT NULL DE ...
- MySQL表字段字符集不同导致的索引失效问题
MySQL表字段字符集不同导致的索引失效问题 转自:MySQL表字段字符集不同导致的索引失效问题 1. 概述 昨天在一位同学的MySQL机器上面发现了这样一个问题,MySQL两张表做left join ...
- MySQL表字段不能用describe
MySQL表字段不能用describe 前言 今天写毕设,我的表有一个字段用来存放描述,于是就用了describe,我项目用了Spring Boot和Mybatis-Plus,当我新增数据时,发现控制 ...
- mysql 表字段信息从一张表迁移到另一张表_MySQL(数据库)笔记
###数据库 之前通过流去操作文件保存数据库的弊端: 1.执行效率低 2.开发成本高 3.一般只能保存小量数据 4.只能保存文本数据 ####什么是DB - DataBase 数据库:代表文件集合 # ...
- mysql 表字段信息从一张表迁移到另一张表_Mysql之分库分表
互联网系统需要处理大量用户的请求.比如微信日活用户破10亿,海量的用户每天产生海量的数量:美团外卖,每天都是几千万的订单,那这些系统的用户表.订单表.交易流水表等是如何处理呢? 数据量只增不减,历史数 ...
- Mysql 表字段(列)编辑 (增删改)
为什么80%的码农都做不了架构师?>>> 列声明 列名 列类型 [列属性] [默认值] alter table 表名 删除,增加 删除字段:alter table 表名 dro ...
最新文章
- hbase java api 两种方式
- 什么意思_手机HD是什么意思 手机信号区显示hd是什么意思
- python ---------函数
- 你所不知道的getResource()在maven下的黑洞!
- 异常处理、socke基于TCP协议编程
- jzoj3792,P2062-分队问题【贪心】
- SpringBoot之获取配置文件中的数据
- CCF201703-2 学生排队(100分)
- 视频教程-WebService实战讲解课程-Java
- 如何做一个基于微信积分商城小程序系统毕业设计毕设作品
- python读取svg转emf_玩玩矢量图标,SVG转换EMF
- 服务器虚拟化分步实施,服务器虚拟化解决实施方案.doc
- RESTful设计风格
- Android自定义控件——模拟抛体加速减速效果
- 思科下一代模拟器EVE-NG安装
- Dubbo实战(一)快速入门
- 朱清时院士:不可思议的量子意识
- pythonwhile true循环_python学习-while True的用法
- react: 动态设置ant-design/icons图标
- 如何编辑图片?图片如何编辑修改?
热门文章
- Redis知识点总结(操作入门级)
- 数据结构——【堆】详解
- 【论文解析】Encoding in Style: a StyleGAN Encoder for Image-to-Image Translation
- 优麒麟Kyrin Ubuntu20.04使用tar解压的方法安装mysql5.7.23超详细
- Unity细节操作(固定分辨率,打包窗口化,字体清晰)
- 10 分钟理解 BFC 原理
- Android一键拍照功能
- 偏最小二乘(pls)回归分析 matlab
- 小姐姐想搭建服务器永久运行网站,我用U盘大小的树莓派神器搞定了!
- 关于nodejs部署时的一些错误(多多客SaaS)