如何编写SQL将second_name值迁移至为null的first_name列并清除原值
字段迁移SQL实现方案
前置检查建议
- 正式执行更新前先执行查询语句确认需要迁移的行是否正确,避免误操作:
SELECT * FROM 替换为你的表名 WHERE first_name IS NULL; - 建议开启事务执行,确认更新结果符合预期后再提交,出错可直接回滚。
核心更新语句(适配MySQL、PostgreSQL、SQL Server等绝大多数关系型数据库)
UPDATE 替换为你的表名 SET first_name = second_name, second_name = NULL WHERE first_name IS NULL;
效果说明
- 只会匹配
first_name为NULL的行执行修改,其余原有数据不会产生任何变动 - 匹配到的行会先把
second_name的取值赋值给first_name,再将对应行的second_name置空,完全符合迁移后清除原值的要求 - 你提到的
drake、jim这类符合迁移条件的值,执行后会自动转移到first_name列,second_name对应位置清空,其他已有数据保持原样不变
内容的提问来源于stack exchange,提问作者Happy Man
相关产品推荐
相关产品推荐

