MySQL - 将ID从1重置为最大错误

时间:2017-05-26 17:31:23

标签: php mysql increment reset

我想将我的ID从1重置为最大值,因为我需要多次更新表格,因此我可能会将ID大于ID列的最大值。
例如,有时我的ID 2842719402837太大,无法在我的ID列中输入(INTEGER,长度为11)。
我使用此查询将ID从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错误: SET @num:= 0;更新riepilogo SET id = @num:=(@ num + 1); ALTER TABLE riepilogo AUTO_INCREMENT = 1;
  错误:SQL语法中有错误;检查与您的MariaDB服务器版本相对应的手册,以便在&nbsp;更新后使用正确的语法riepilogo SET id = @num:=(@ num + 1); ALTER TABLE riepilogo AUTO _&#39;在第2行

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

1 个答案:

答案 0 :(得分:0)

您可以使用BIGINT datatyppe而不是INT

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

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