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

时间:2019-04-05 14:48:46

标签: mysql sql mysqli dump

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

这是用于mySQL数据库

谢谢!

1 个答案:

答案 0 :(得分:0)

您无法使用mysqldump工具执行此操作。它没有任何用于转换输出的选项,它仅转储数据库中的数据。因此,如果您使用mysqldump,则可以选择:

  • 存储匿名数据并转储该数据(如@ DroidX86在上面的注释中所建议)
  • 真正擅长sed并使用它来过滤mysqldump的输出。我 am 对sed真的很满意,我不会尝试。

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

您可以向SELECT ... FROM MyTable;编写脚本,基本上就是mysqldump所做的事情。但是,如果您编写自己的工具,则可以使用表达式对名称和名字进行匿名处理,而不必按原样转储那些列的内容。

但是,编写自己的mysqldump替代词比听起来困难。一些开发人员尝试了它,并把它弄错了。我之前已经回答过有关此问题: