我在表A中有一个CHAR类型列,并且列中的所有字符串都与表B中的整数一一对应。我想要的是替换表A的CHAR列中的所有字符串来自表B的相应INT。我知道我可以编写一个脚本来创建一个新列并使用相关数据填充它,但似乎应该有更简单的方法从MySQL中执行它。有没有办法用UPDATE或ALTER TABLE语句执行此操作?
答案 0 :(得分:2)
好吧,只需使用int值更新列即可:
UPDATE table1
SET table1.column = table2.column
WHERE <condition>
但该列仍然是CHAR列,因此您仍然需要执行ALTER TABLE以将列转换为INT。
虽然这不应该会导致出现问题,但我更愿意添加一个新的INT列,用上面的UPDATE填充它,然后删除旧列 - 总是假设表没有那么大的重复ALTER TABLE锁定时间过长。