gpt4 book ai didi

mysql - 为什么我无法使用 bash 脚本对自动增量 mysql 表重新排序?

转载 作者:行者123 更新时间:2023-11-29 23:46:58 25 4
gpt4 key购买 nike

我想重新排序我的表 ID。我尝试了两种不同的方法,从 MySQL 命令和我的 bash 脚本。但为什么我的 bash 脚本无法按 id 重新排序?这是我的代码:

First try :
echo "set @num=0" | mysql -D$db -u$user -h$host -p$pass
echo "update list set id=@num:=(@num+1)" | mysql -D$db -u$user -h$host -p$pass
echo "alter table list AUTO_INCREMENT=1" | mysql -D$db -u$user -h$host -p$pass

Second try :
mysql -D$db -u$user -p$pass -h$host "set @num=0"
mysql -D$db -u$user -p$pass -h$host "update list set id=@num:=(@num+1)"
mysql -D$db -u$user -p$pass -h$host "alter table list AUTO_INCREMENT=1"

每次我在 bash 脚本中使用该代码时,都会出现如下错误:

ERROR 1062 (23000) at line 1: Duplicate entry '0' for key 'PRIMARY'

但是当我从终端直接使用 MySQL 时它不会显示。我确信我的 ID 中没有任何“0”值。怎么会发生呢?以及如何解决?抱歉英语不好。

最佳答案

我通过将命令写入文件来管理此问题,如下所示:

(auto.sql - 不要忘记每行末尾的分号)

set @num=0;
update list set id=@num:=(@num+1);
alter table list AUTO_INCREMENT=1;

保存文件,然后使用 .sql 文件作为输入运行 mysql:

 mysql -uusername -ppassword database < auto.sql

关于mysql - 为什么我无法使用 bash 脚本对自动增量 mysql 表重新排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25862105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com