在MySQL中查找AUTO_INCREMENT列的下一个值

Xpe*_*z X 8 mysql auto-increment next

我正在使用MySQL.我想在不输入新记录的情况下检索AUTO_INCREMENT列将采用的下一个值.

create table ABC(id int(10) NOT NULL AUTO_INCREMENT,name char(10));
Run Code Online (Sandbox Code Playgroud)

在oracle中我会使用sequencename.nextval();但是我在MySQL中使用了什么?

这是我为什么不能

select max(id) from ABC;
Run Code Online (Sandbox Code Playgroud)

假设我有一个id = 2的条目.现在列id将下一个值设为3.在创建id = 3的记录之前,如果我删除id = 2的记录.我提到的查询的答案是2.但我想要实际值3,auto_increment列无论如何都要采用.

Fla*_*der 9

查询表状态如下:

SHOW TABLE STATUS WHERE `Name` = 'table_name'
Run Code Online (Sandbox Code Playgroud)

现在结果你会得到一个名为的列Auto_increment.这是你要求的价值.

在JAVA中:

conn = DriverManager.getConnection(connectionUrl, connectionUser, connectionPassword);
stmt = conn.createStatement();
rs = stmt.executeQuery("SHOW TABLE STATUS WHERE `Name` = 'table_name'");
rs.next();
String nextid = rs.getString("Auto_increment");
Run Code Online (Sandbox Code Playgroud)

这里有完整的例子:http://www.avajava.com/tutorials/lessons/how-do-i-use-jdbc-to-query-a-mysql-database.html