`
t225com
  • 浏览: 662293 次
文章分类
社区版块
存档分类
最新评论

MySQL获取Auto_increment字段刚插入的值

 
阅读更多

MySQL获取Auto_increment字段刚插入的值

不能使用select max(id) from testnotnull;

这样来获取刚插入的那个递增字段的值,

这样没有考虑多线程。

一个比较好的方法是:

使用java.sql.PreparedStatement pstmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

在插入数据之后,即执行pstmt.executeUpdate()后,

ResultSet rs = pstmt.getGeneratedKeys(); 获取刚插入的那个自动自增字段的值。

测试代码:

如果只是单纯的想要获取Auto_increment的最大值,可用

select max(id) from testnotnull;

或 show table status from hibernate like 'testnotnull';获取其中的Auto_increment的值。

这两种方法都不是线程安全的!!!!!

分享到:
评论

相关推荐

    python mysql自增字段AUTO_INCREMENT值的修改方式

    主要介绍了python mysql自增字段AUTO_INCREMENT值的修改方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    Mysql auto_increment 重新计数(让id从1开始)

    当清空一个表的时候,重新插入数据,发现auto_increment属性的字段计数不是从1开始的时候,可以使用以下命令

    MySQL自增长键理解

    自增长键 # 查看自增长键配置 ...新的自增值生成算法是:从auto_increment_offset(初始值)开始,以auto_increment_increment(步长)为步长,持续叠加,直到找到第一个大于X的值,作为新的自增值. 自增字段必

    MySQL中不能创建自增字段的解决方法

    引起MySQL不能创建自动增加的字段的原因是在MySQL5.0.2版本中的The Server SQL Mode 中新加了几种 sql_mode,并且在sql的my.ini文件中的sql-mode 默认增加了其中的二种,一个是STRICT_TRANS_TABLES,就是导致auto_...

    oracle迁移mysql自增序列问题

    今天从oracle迁移数据到mysql碰到个需求:原先的主键字段需要改成mysql中的自增字段,而且原先数据的值不能变,以后新插入的值从原先数据最大的值开始自增。 解决办法: 构建环境: mysql> CREATE TABLE test -> ( ...

    mysql中使用replace替换某字段的部分内容

    最近有个朋友提到如何使用sql来删除一个字段中部分内容,于是就写了这篇文章,简单记过: 测试表如下: 代码如下: CREATE TABLE `t` (   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,   `domain` tinytext,...

    mysql创建表.pdf

    AUTO_INCREMENT关键词意味着每当有新记录被插入到表中时,"id"字段的值会自动增加。 请注意,每个数据库系统对SQL语法和数据类型都有自己的特定规则。上述例子是适用于MySQL的。在其他数据库系统中,可能会有所不同...

    MySQL中文参考手册

    * 1 MySQL的一般的信息 o 1.1 什么是MySQL? o 1.2 关于本手册 + 1.2.1 本手册中使用的约定 o 1.3 MySQL的历史 o 1.4 MySQL的主要特征 o 1.5 MySQL稳定性? o 1.6 顺应2000年 o 1.7 SQL一般信息和教程 o ...

    PostgreSQL AUTO INCREMENT(自动增长)

    AUTO INCREMENT(自动增长) 会在新记录插入表中时生成一个唯一的数字。 PostgreSQL 使用序列来标识字段的自增长,数据类型有 smallserial、serial 和 bigserial 。这些属性类似于 MySQL 数据库支持的 AUTO_...

    MYSQL

    16.3 已知可用 MyODBC一起工作的程序 16.4 怎样填写 ODBC 管理程序的各种域 16.5 怎样在ODBC中获得一个AUTO_INCREMENT列的值 16.6 报告 MyODBC 的问题 17 与一些常用程序一起使用MySQL 17.1...

    MySQL语句之约束条件的设置

    在向数据表中插入数据时,如果用户希望每条记录的编号自动生成,并且按照顺序排列,可以为该字段设置自增约束。 自增约束的关键词是:AUTO_INCREMENT。 语法形式: col_name data_type AUTO_INCREMENT 注意: ①...

    MySQL中文参考手册.chm

    8 MySQL 教程 8.1 联接和断开服务器 8.2 输入查询 8.3 常用查询的例子 8.3.1 列的最大值 8.3.2 拥有某个列的最大值的行 8.3.3 列的最大值:按组:只有值 8.3.4 拥有某个字段的...

    深入Mysql,SqlServer,Oracle主键自动增长的设置详解

    1、把主键定义为自动增长标识符类型MySql在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动...以上sql语句先创建了customers表,然后插入两条记录,在插入时仅仅设定了name字段的值。最后查询表中id字

    MYSQL常用命令大全

    命令:insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )] 例如,往表 MyClass中插入二条记录, 这二条记录表示:编号为1的名为Tom的成绩为96.45, 编号为2 的名为Joan 的成绩为82.99,...

    最全Mysql数据库命令

    > id int(4) not null primary key auto_increment, > name char(20) not null, > sex int(4) not null default '0', > degree double(16,2)); 2、获取表结构 命令: desc 表名,或者show columns from 表名 mysql>...

    详解MySQL中default的使用

    NULL 和 NOT NULL 修饰符、DEFAULT 修饰符,AUTO_...MySQL 则不允许向该字段插入空值(这里面说的空值都为 NULL),因为这是 “规定”。 /* 创建好友表,其中id ,name ,pass都不能为空 */ create table friends ( id in

    MySQL命令大全

    命令:insert into <表名> [( <字段名>[,..<字段名n > ])] values ( 值 )[, ( 值n )] 例如,往表 MyClass中插入二条记录, 这二条记录表示:编号为的名为Tom的成绩为.45, 编号为 的名为Joan 的成绩为.99,编号为 的...

    MySQL 5.1参考手册

    3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天计算访问量 3.6.9. 使用AUTO_INCREMENT 3.7. 孪生项目的查询 3.7.1. 查找所有未分发的孪生项 3.7.2....

Global site tag (gtag.js) - Google Analytics