我如何获得当前的AUTO_INCREMENT值为一个表在MySQL?
当前回答
我也在寻找相同的方法,最终在Helper类中创建了一个静态方法(在我的情况下,我将其命名为App\Helpers\Database)。
该方法
/**
* Method to get the autoincrement value from a database table
*
* @access public
*
* @param string $database The database name or configuration in the .env file
* @param string $table The table name
*
* @return mixed
*/
public static function getAutoIncrementValue($database, $table)
{
$database ?? env('DB_DATABASE');
return \DB::select("
SELECT AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = '" . env('DB_DATABASE') . "'
AND TABLE_NAME = '" . $table . "'"
)[0]->AUTO_INCREMENT;
}
要调用该方法并获得MySql的AUTO_INCREMENT,只需使用以下命令:
$auto_increment = \App\Helpers\Database::getAutoIncrementValue(env('DB_DATABASE'), 'your_table_name');
希望能有所帮助。
其他回答
如果列在sql server中是自动递增的,那么要查看当前自动递增的值,如果您想编辑该列的值,请使用以下查询。
-- to get current value
select ident_current('Table_Name')
-- to update current value
dbcc checkident ('[Table_Name]',reseed,"Your Value")
你可以使用这个查询来获取所有的表数据:
SHOW TABLE STATUS FROM `DatabaseName` WHERE `name` LIKE 'TableName' ;
你可以通过使用这个查询来获得确切的信息:
SELECT `AUTO_INCREMENT`
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'DatabaseName'
AND TABLE_NAME = 'TableName';
列出dbname所有tabename和AUTO_INCREMENT
SELECT `AUTO_INCREMENT`,`TABLE_NAME`
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbname' ORDER BY AUTO_INCREMENT desc
我相信你正在寻找MySQL的LAST_INSERT_ID()函数。如果在命令行中,只需执行以下命令:
LAST_INSERT_ID();
你也可以通过SELECT查询得到这个值:
SELECT LAST_INSERT_ID();
如果你只是想知道这个数字,而不是在查询中得到它,那么你可以使用:
SHOW CREATE TABLE tablename;
您应该在底部看到auto_increment
推荐文章
- mySQL:: insert到表,数据从另一个表?
- 重复键忽略?
- 将表从一个数据库复制到另一个数据库的最简单方法?
- 如何通过查询在MySQL中获得数据库结构?
- MySQL删除表中的所有行,并将ID重置为零
- 在准备语句中使用“like”通配符
- MySQL中的表名是否区分大小写?
- 库未加载:libmysqlclient.16。在OS X 10.6上使用mysql2 gem运行'rails server'时出现dylib错误
- 如何知道MySQL表最近一次更新?
- 在MySQL中的一个查询中更新多个具有不同值的行
- 如果表存在则删除表并创建它,如果不存在则创建它
- MySQL OR与IN性能
- 将值从同一表中的一列复制到另一列
- 删除id与其他表不匹配的sql行
- MySQL CPU使用率高