【发布时间】:2020-01-15 11:51:54
【问题描述】:
我有一个非常大的数据库,为了进行测试,我想将一定数量的数据设置为 NULL。
例如,我在 3 个表中有 57 列,所有这些都需要被取消。我无法删除这些行,我只需要知道如果该行存在并且这些字段中没有数据,那么一切仍然有效。
为了澄清,这些字段中的所有数据都已移动到另一个表中,并且旧数据在迁移中没有被擦除。要测试我的报告,我需要知道报告是从新位置而不是旧位置提取的,因为添加新数据时,它只会转到新位置。我们的计划是从旧数据库生成每个报告,迁移,然后再次生成它们并进行比较。但为了确保它们从正确的位置提取,我们希望擦除旧数据,以免它提供误报。
有没有办法让我批量执行此操作,或者我应该放弃自己编写一个又一个逗号分隔的 SET 语句?
【问题讨论】:
-
我不明白...您是否希望每个表的每个字段都为空,或者将保存一个预先确定的集合(例如 ID)?或者,也许您是在问如何在不指定字段名称的情况下进行更新(听起来像“将 null 设置为不是这一列的每一列”)?
-
有一个预定的集合将被保存(其中的ID),所以“除XY&Z之外的每一列”都会很棒,就像“将所有这些()设置为null”而不是“设置这个一个为空,这个为空,这个为空”
-
我们在说多少列需要设置为NULL?
-
最大的表有 37 个,一个有 29 个,一个有 22 个,一个有 9 个(这是我必须保留一些数据的地方,我不能只是截断并重新创建行),和 8 表有 1 到 3 之间
-
那么关于编写 12 条 UPDATE 语句,总共有 100 列,你想设置为 NULL 的问题是什么?
标签: mysql null sql-update bulkupdate