• 关于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

  • 相关阅读:
    SQLServer中的死锁的介绍
    T-SQL基础--TOP
    jQuery 与js判断是否单选复选选中
    动态替换iframe的src及动态改变iframe的高度
    ztree-持续更新中
    java发送http连接
    nginx配置文件详解
    eclipse Mars4.5.2安装fatjar
    java Scanner类注意事项
    纯java+maven+sqlserver使用mybatis
  • 原文地址:https://www.cnblogs.com/aierben/p/12747718.html
Copyright © 2020-2023  润新知