Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在不添加新记录的情况下获取下一个主键是不可能的,不是吗?_Php_Mysql_Sql - Fatal编程技术网

Php 在不添加新记录的情况下获取下一个主键是不可能的,不是吗?

Php 在不添加新记录的情况下获取下一个主键是不可能的,不是吗?,php,mysql,sql,Php,Mysql,Sql,我考虑过谷歌的顶级搜索结果,mysql的几乎所有功能等等。。。不幸的是,据我所知,如果不向数据库的表中添加新行,我们就无法知道下一个主键。请告诉我我错了。这个问题怎么解决不了?我很失望。在谷歌上花了大约7秒钟找到: 该值存在于信息_SCHEMA.TABLES中。请参阅。在合理的假设下,你可以在那里得到价值 合理假设: 对系统变量没有影响自动增量的更改。 没有并发事务。 没有干预重置值。 通过此请求,您拥有表中的最后一个id 从_表中选择MAXid 您只需在请求结果中添加+1即可。如果您有多个并发

我考虑过谷歌的顶级搜索结果,mysql的几乎所有功能等等。。。不幸的是,据我所知,如果不向数据库的表中添加新行,我们就无法知道下一个主键。请告诉我我错了。这个问题怎么解决不了?我很失望。

在谷歌上花了大约7秒钟找到:

该值存在于信息_SCHEMA.TABLES中。请参阅。在合理的假设下,你可以在那里得到价值

合理假设:

对系统变量没有影响自动增量的更改。 没有并发事务。 没有干预重置值。
通过此请求,您拥有表中的最后一个id

从_表中选择MAXid


您只需在请求结果中添加+1即可。

如果您有多个并发用户,即使读取MySQL分配的下一个值也不能保证,您无法确定;但真正的问题是,你为什么需要这样做呢?因为在我的项目中,我用AJAX上传图片,在它旁边,然后提交包含图片的文章。所以我需要为这些图片放一个外键,这样它们才能与候选文章相关。也就是说,我需要学习候选文章的主键,以便能够将该值作为文章中图像的外键。仍然不需要预测将分配的下一个id
SELECT AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = "databaseName"
AND TABLE_NAME = "tableName"