mysql中主键自动增长时的几种情况
来源:互联网 发布:linux 移动整个文件夹 编辑:程序博客网 时间:2024/06/05 08:09
1、我们先建一个表user
mysql> create table user(
-> id int(4) primary key auto_increment,
-> username varchar(20),
-> password varchar(20));
Query OK, 0 rows affected (0.08 sec)
2、我们先插入一条数据:
mysql> insert into user values (null,'admin',300000);
Query OK, 1 row affected (0.09 sec)
3、我们插入的主键值为null,可还是插入成功了。查看该表的值:
mysql> select * from user;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 1 | admin | 300000 |
+----+----------+----------+
1 row in set (0.00 sec)
该表中的id仍为1。
4、我们再插一条正常的数据:
mysql> insert into user (username,password) values ('Europa','123');
Query OK, 1 row affected (0.03 sec)
5、自动增长后是2,数据库中呢?我们看下:
mysql> select * from user;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 1 | admin | 300000 |
| 2 | Europa | 123 |
+----+----------+----------+
2 rows in set (0.00 sec)
数据库中的值就是2
6、我们再插入一条手动指定主键值的数据:
mysql> insert into user values (4,'europa','123');
Query OK, 1 row affected (0.24 sec)
7、若按自动增长,即为3的。我们看下数据库里的值:
mysql> select * from user;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 1 | admin | 300000 |
| 2 | Europa | 123 |
| 4 | europa | 123 |
+----+----------+----------+
3 rows in set (0.00 sec)
并非我们猜想的值,是手动设定的值4。
你可以继续进行试验,但你最终会发现,若自动增长的主键值,你手动设为null,数据库会忽略掉null,按自动增长给值;若手动给其他合法的值,
就不会自动增长,按你给定的值给值。
因此可以得出结论:mysql中的主键自动增长时,他会先检查插入的主键值是否合法,若不合法就报错;再者检验插入的主键值是否为空,若为空,则
按自动增长赋值;再者,在插入数据时没有给主键设值,也会自动增长赋值。
- mysql中主键自动增长时的几种情况
- mysql中主键自动增长时的几种情况
- mysql中主键自动增长时的几种情况
- mysql 主键自动增长
- MySql 主键自动增长
- MySql 主键自动增长
- DB2中自动增长主键的方法
- mysql 非主键 自动增长
- mysql 主键自动增长问题
- 数据库中主键自动增长
- Mysql,SqlServer,Oracle主键自动增长的设置
- Mysql,SqlServer,Oracle主键自动增长的设置
- Mysql,SqlServer,Oracle主键自动增长的设置
- Mysql,SqlServer,Oracle主键自动增长的设置
- PowerDesigner设置MYSQL主键自动增长的方法
- Mysql,SqlServer,Oracle主键自动增长的设置
- Mysql,SqlServer,Oracle,sqlite 主键自动增长的设置
- PowerDesigner设置MYSQL主键自动增长的方法
- 基于Linux开源VOIP系统LinPhone[二]
- TinyOS学习笔记13-节点与计算机利用串口通信3-MIG分析
- 前端JS模板
- CursorLoader和CursorAdapter的配合使用
- 高性能JavaScript模板引擎原理解析
- mysql中主键自动增长时的几种情况
- 前段/oa开发必备jquery ui
- 用拦截器解决页面JSP缓存问题
- Oracle建立DBLINK的详细步骤记录
- 把文件用base64进行转码
- c语言调用库函数qsort()进行快速排序
- Android ListView的cell的分割线
- android学习之-Listview的几种问题
- hdu1005 Number Sequence