zoukankan      html  css  js  c++  java
  • 关于mysql auto-increment

    创建表语句如下
    mysql> show create table TautoincrementG
    *************************** 1. row ***************************
    Table: Tautoincrement
    Create Table: CREATE TABLE `Tautoincrement` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(10) DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8
    1 row in set (0.00 sec)

    如下插入数据报错
    mysql> insert into Tautoincrement values('zs');
    ERROR 1136 (21S01): Column count doesn't match value count at row 1
    即需要提供与建表时相同的列值
    故用下述方式插入数据
    mysql> insert into Tautoincrement(name) values('zs');
    查询结果如下
    +----+------+
    | id | name |
    +----+------+
    | 1 | zs |
    继续插入数据
    mysql> insert into Tautoincrement(id,name) values(3,'zs');
    查询结果如下
    +----+------+
    | id | name |
    +----+------+
    | 1 | zs |
    | 3 | zs |
    依旧没什么问题,但是可以得出一个结论,innodb类型的数据库允许用户插入autoincrement限制的列的值,与sqlserver有所不同,
    继续插入数据
    mysql> insert into Tautoincrement(name) values('zss');
    查询结果如下
    +----+------+
    | id | name |
    +----+------+
    | 1 | zs |
    | 3 | zs |
    | 4 | zss |
    可以发现,已经autoincrement的默认值已经跳过id=2的情况,需注意,
    此时执行 select last_insert_id() 返回结果为4 ###还有一个问题,该函数返回该数据库下的最新值,所以说不一定是你最新插入的id,有点尴尬
    后面验证得知
    同时插入大量数据, last_insert_id() 返回第一次插入时id

  • 相关阅读:
    PHP 对Memcache的使用实例
    PHP Memcache 扩展安装
    Effective STL 读书笔记
    windows下安装和使用scrapy
    使用insert ignore来避免向数据库重复插入数据
    2017年末
    归并排序
    二叉树的中序遍历
    正则表达式
    tinymq学习小结
  • 原文地址:https://www.cnblogs.com/aierben/p/12747718.html
Copyright © 2011-2022 走看看