“自增当前值”通常指数据库表中 AUTO_INCREMENT(自增列)的当前值。不同数据库查法不同,下面给你常见数据库的写法。
SHOW TABLE STATUS LIKE '表名';
关注结果中的 Auto_increment 字段,就是下一条插入将使用的值。
SELECT AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = '数据库名'
AND TABLE_NAME = '表名';
SELECT LAST_INSERT_ID();
注意:这是当前连接最后一次插入的自增ID,不是表的最大值。
DBCC CHECKIDENT ('表名', NORESEED);
会显示:
SELECT IDENT_CURRENT('表名');
返回该表自增列的当前值(不管哪个连接)
SELECT SCOPE_IDENTITY();
PostgreSQL 使用 SEQUENCE:
SELECT last_value
FROM 序列名;
或
SELECT currval('序列名');
SELECT pg_get_serial_sequence('表名', '列名');
Oracle 用 SEQUENCE:
SELECT 序列名.CURRVAL FROM dual;
注意:CURRVAL 必须先 NEXTVAL 过才能用。
| 数据库 | 查自增当前值方式 |
|---|---|
| MySQL | SHOW TABLE STATUS / information_schema |
| SQL Server | DBCC CHECKIDENT / IDENT_CURRENT |
| PostgreSQL | currval(序列) |
| Oracle | 序列.CURRVAL |
如果你告诉我 用的什么数据库 + 表结构,我可以直接给你一条可执行的 SQL。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。