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

  • 相关阅读:
    数组去重复的时候遇到length变成1 的bug
    js中的setTimeout第三个参数
    Maven安装过程
    wordpress 修改过程
    CentOS 6.5 安装 MySQL5.6 并用Navicat for MySQL 连接
    解决安装WordPress主题及插件需要输入FTP问题
    mysql语句记录
    How to set a MySQL root user password in MAC OSX
    【转】解决Windows不能在本地计算机启动apache tomcat
    近期要看文章(20150105)
  • 原文地址:https://www.cnblogs.com/aierben/p/12747718.html
Copyright © 2020-2023  润新知