mysql - 更改 mysql 转储以不包含 auto-inc 列

标签 mysql bash unix sed

我有一个 mysqldump 文件,我想恢复它,但与它的构建方式不同。它包含一个我想删除的自动增量列。

转储文件如下所示:(第一列是自动增量)

INSERT INTO `my_table` VALUES (833899644,461796098,'Wed',21,12),(833899645,423455772,'Sun',3,3)
...

所以我想我需要将其更改为:(删除第一个数字)

INSERT INTO `my_table` VALUES (461796098,'Wed',21,12),(423455772,'Sun',3,3)

这个转储相当大(20GB),但我认为 sed 可以很容易地处理它,但不确定如何处理。希望有 sed/其他选项的解决方案。

最佳答案

为了简单起见,请删除从左括号到第一个逗号的所有内容。

如果您希望更改就地发生,请使用:

sed -i -r "s/\([^,]+,/\(/g" file

如果您想将其保存在另一个文件中:

sed -r "s/\([^,]+,/\(/g" file > outfile

关于mysql - 更改 mysql 转储以不包含 auto-inc 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25360268/

相关文章:

linux - 替代向上箭头 + Enter 运行上一个命令?

Linux shell脚本如何仅在表不存在时创建Oracle表

mysql - 我想合并两个表以获得结果

bash - 使用 sed 格式化文件

php - 使用Mysql数据库用户名和密码登录

bash - 如何避免 echo 关闭 FIFO 命名管道? - Unix FIFO 的有趣行为

c代码获取二级存储大小

unix - 使用 awk 命令从文件中提取第一行

mysql - 表连接的 SQL 数据库错误

MySQL检测大小写?