如何在执行SQL转储时替换某些列的值

问题描述 投票:0回答:1

我需要做常规SQL转储来保存数据库,但在表“users”中有“name”和“firstname”列必须是匿名的(通过随机字符串或其他方式更改值)。我想知道如何转储我的数据并同时更改这些列的值?

这是一个mySQL数据库

谢谢 !

mysql sql mysqli dump
1个回答
0
投票

你不能用mysqldump工具做到这一点。它没有任何转换输出的选项,它只转储数据库中的数据。所以如果你使用mysqldump,你的选择是:

  • 存储匿名数据并转储该数据(如上面评论中的@ DroidX86所示)
  • 真的很擅长sed并用它来过滤mysqldump的输出。我对sed非常好,我不会尝试。

因此,您可以尝试在不使用mysqldump的情况下转储数据,因此您可以在数据上进行自定义转换的更多选项。

你可以写一个脚本到SELECT ... FROM MyTable;,这基本上是mysqldump所做的。但是,如果您编写自己的工具,则可以使用表达式来匿名化名称和名称,而不是按原样转储这些列的内容。

然而,为mysqldump编码你自己的替代品比听起来更难。一些开发人员已经尝试过,并且发现它非常错误。我以前回答过有关它的问题:

© www.soinside.com 2019 - 2024. All rights reserved.