我正在使用MySQL。
我想要获取AUTO_INCREMENT列将采用的下一个值,而不需要输入新记录。
在Oracle中,我会使用
以下是我为什么没有使用的原因。
假设我有一个id为2的记录。现在,列id将取下一个值3。 在我创建一个id为3的记录之前,如果我删除了id为2的记录。 我提到的查询的答案将是2。但是我想要实际的值3,无论如何auto_increment列都会取到。
create table ABC(id int(10) NOT NULL AUTO_INCREMENT,name char(10));
在Oracle中,我会使用
sequencename.nextval();
。但是在MySQL中应该使用什么呢?以下是我为什么没有使用的原因。
select max(id) from ABC;
假设我有一个id为2的记录。现在,列id将取下一个值3。 在我创建一个id为3的记录之前,如果我删除了id为2的记录。 我提到的查询的答案将是2。但是我想要实际的值3,无论如何auto_increment列都会取到。
SELECT (IFNULL(max(id),0) + 1 ) as id from table
。如果表中沒有記錄,IFNULL將會很有幫助。 - Eugine Joseph