为什么information\u schema.tables显示的auto\u increment列的值不正确?

pbossiut  于 2021-08-13  发布在  Java
关注(0)|答案(0)|浏览(193)

我想得到下一个值,它将放入auto increment列中,所以首先,我要显示我有哪些表:userinfo:

"CREATE TABLE userinfo (id int NOT NULL AUTO_INCREMENT,firstname varchar(20) DEFAULT NULL, lastname varchar(20) DEFAULT NULL, login varchar(20) NOT NULL,password varchar(20) NOT NULL, email varchar(30) NOT NULL UNIQUE, typeof varchar(9) DEFAULT 'standart', onoff tinyint(1) NOT NULL, lastvisit date DEFAULT NULL, PRIMARY KEY (id))

我在userinfo表中输入了两个用户,这里是“select*from userinfo”,输入是:

id  |firstname  |lastname   |login  |password   |email  |typeof |onoff  |lastvisit <br>
1   |Frost  |Frost  |Frost  |givanchy   |Frost  |standart   |1  |NULL <br>
2   |Frost1 |Frost1 |Frost1 |givanchy   |Frost1 |standart   |1  |NULL

根据逻辑,下一个自动递增值应该是3,我使用下一个语法:

SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = "kvsl" AND TABLE_NAME = "userinfo",input is:<br>


自动增量10
总是10个为什么?
顺便说一下,给出正确的下一个自动递增值的下一个语法“show create table kvsl.userinfo”,输入是:
'用户信息',

'CREATE TABLE `userinfo` (\n  `id` int NOT NULL AUTO_INCREMENT,\n  `firstname` varchar(20) DEFAULT NULL,\n  `lastname` varchar(20) DEFAULT NULL,\n  `login` varchar(20) NOT NULL,\n  `password` varchar(20) NOT NULL,\n  `email` varchar(30) NOT NULL,\n  `typeof` varchar(9) DEFAULT \'standart\',\n  `onoff` tinyint(1) NOT NULL,\n  `lastvisit` date DEFAULT NULL,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `login` (`login`),\n  UNIQUE KEY `email` (`email`)\n) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci'

你怎么能看到下一个插入的自动增量值是3,这是为什么?因为我需要在int变量中返回下一个自动增量值;
获得下一个或当前自动增量值以存储在这样的变量中的最佳方法是什么

begin
declare curvala int;
set int =(SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = "kvsl" AND TABLE_NAME = "userinfo");    
end;//

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题