我可以找出下一个要使用的 auto_increment 吗?

mysqlmysqli database

是的,您可以使用 SELECT AUTO_INCREMENT 找出下一个 auto_increment,如以下语法所示 −

SELECT AUTO_INCREMENT
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA= yourDatabaseName AND TABLE_NAME=yourTableName;

首先我们创建一个表 −

mysql> create table DemoTable
(
   ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   ClientName varchar(20),
   ClientAge int
);
Query OK, 0 rows affected (1.33 sec)

使用 insert 插入命令在表中插入一些记录 −

mysql> insert into DemoTable(ClientName,ClientAge) values('John',23);
Query OK, 1 row affected (0.35 sec)
mysql> insert into DemoTable(ClientName,ClientAge) values('Carol',21);
Query OK, 1 row affected (0.28 sec)
mysql> insert into DemoTable(ClientName,ClientAge) values('Bob',24);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(ClientName,ClientAge) values('David',25);
Query OK, 1 row affected (0.25 sec)

以下是使用 select 语句显示表中的所有记录的查询 −

mysql> select *from DemoTable;

这将产生以下输出 −

+----------+------------+-----------+
| ClientId | ClientName | ClientAge |
+----------+------------+-----------+
| 1        | John       | 23        |
| 2        | Carol      | 21        |
| 3        | Bob        | 24        |
| 4        | David      | 25        |
+----------+------------+-----------+
4 rows in set (0.00 sec)

以下查询用于找出上表中要使用的下一个 auto_increment。

mysql> SELECT AUTO_INCREMENT
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA= 'sample' AND TABLE_NAME='DemoTable';

这将产生以下输出 −

+----------------+
| AUTO_INCREMENT |
+----------------+
| 5              |
+----------------+
1 row in set (0.20 sec)


相关文章