php - MySQL - 将 ID 从 1 重置为最大值时出错

标签 php mysql increment reset

我想将 id 从 1 重置为最大值,因为我需要多次更新表,因此 id 可能会大于 ID 列的最大值。< br/> 例如,有时我得到的 ID 2842719402837 太大,无法在我的 ID 列中输入(整数,长度 11)。
我使用此查询将 id 从 1 重置为最大 1:

SET @num := 0;
UPDATE riepilogo SET id = @num := (@num+1);
ALTER TABLE riepilogo AUTO_INCREMENT =1;

在这里你可以找到我得到 SQL 的答案:Click Here

虽然它在 phpMyAdmin 上运行良好,但它不适用于 PHP。
我正在使用此代码来执行查询:

$sql = "SET  @num := 0;
        UPDATE riepilogo SET id = @num := (@num+1);
        ALTER TABLE riepilogo AUTO_INCREMENT =1;";
$result = $conn->query($sql);
if(!$result) die("MySQL Error : ".$sql."<br>Error : ".$conn->error);

当然,我已经设置了 $conn 变量,但我收到以下错误:

MySQL Error : SET @num := 0; UPDATE riepilogo SET id = @num := (@num+1); ALTER TABLE riepilogo AUTO_INCREMENT =1;
Error : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UPDATE riepilogo SET id = @num := (@num+1); ALTER TABLE riepilogo AUTO_' at line 2

因此,此查询正在与 phpMyAdmin 的 SQL 控制台一起使用,但不是使用 PHP 执行。
我究竟做错了什么?非常感谢!

最佳答案

您可以使用 BIGINT 数据类型代替 INT

根据您的要求,使用以下代码重置 AUTO_INCRMENT,

$sql = "ALTER TABLE riepilogo AUTO_INCREMENT = 1";
$result = $conn->query($sql);
if(!$result) die("MySQL Error : ".$sql."<br>Error : ".$conn->error);

关于php - MySQL - 将 ID 从 1 重置为最大值时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44207179/

相关文章:

php - 如何防止用户使用 jQuery 以最大长度输入值

php - 在中间件 Laravel 5.5 中获取 Session 值

php - 将带有 $_SESSION 值的记录写入数据库表

javascript - 如何在单击事件触发时将变量加一

变量的javascript递增名称

php - 在 MySQL 中获取给定月份的记录?

来自 2 个表的 php 子查询

mysql - 数字文字 0 等于 VARCHAR 列中的任何内容

php - 写一个博客论坛...并且需要有关 sql 的帮助

loops - 循环增量值