我想将 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/