我正在忙于一个学校项目,我根据客户端的服务器查询数据库。其中一个要求是从数据库中检索下一个可用的AutoNumber
。
SQL查询将检索下一个可用的Autonumber
是什么?有可能这样做吗?
答案 0 :(得分:2)
下一个自动编号与上一个自动编号+1不同。如果记录已被删除,则下一个可能的自动编号可能远远高于最后一个编号。使用MS Access也可以获得负自动编号。如Allen Browne所示,您可以使用ADOX获取自动编号列的种子属性,这是下一个自动编号。
答案 1 :(得分:1)
如果是Oracle,则使用JDBC
运行以下查询SELECT YOUR_SEQUENCE.NEXTVAL FROM DUAL
答案 2 :(得分:1)
这取决于RDBMS的风格。 MariaDB(MySQL)具有LAST_INSERT_ID()函数,该函数为您提供AUTO_INCREMENT字段的最后一个值。
支持序列的数据库(比如Ingres)允许您使用以下内容获取下一个值:
SELECT NEXT VALUE FOR some_sequence;
或
SELECT some_sequence.NEXTVAL;
答案 3 :(得分:1)
最佳解决方案是插入记录,然后获取生成的密钥,然后回滚事务。 它适用于所有具有事务和自动编号支持的数据库。