请教一个问题,关于mysql方面的

fzxu_05 发布于 2012/04/19 17:08
阅读 285
收藏 0
有两个表A(是线上表),B,
A的记录每天都在增加。
B是某次copy下来的A表
现在修改了B,
如何覆盖到A上,会有风险吗?

不知道表达是否清楚
加载中
0
mark35
mark35
为何不直接修改A呢?
fzxu_05
fzxu_05
因为倒霉的A是线上的表,不让轻易改
0
泡不烂的凉粉
泡不烂的凉粉

有唯一key 没?

如果有 update table A,B set A.f1=B.f1, A.f2=B.f2 ... where A.id=B.id

除了操作会很慢外,没有风险。

不然这样的操作会锁定两个表的。线上应用会打不开A.

泡不烂的凉粉
泡不烂的凉粉
回复 @fzxu_05 : 哥们, B是线下的。 你不会造个临时B表吗? 风险无处不在, 操作需谨慎。
fzxu_05
fzxu_05
谢谢,不过A,B不在同一台服务器上,不在同一个数据库上
0
哈全文
哈全文
风险当然有了,只要你想总有办法的,小心点就是了
0
mickey_52
mickey_52

个人想法:

现在生产线上创建 A_tmp 表(就是B表修改后的内容),确认正确,就进行如下两个关键步骤。

rename table A to A_old;

rename table A_tmp to A;

0
王老虎
王老虎
要是我就直接把B表改动的数据取出来,然后只有个自增的id对应上,然后可以分段更新。
0
netjourney
netjourney
什么样的应用竟然允许你如此对待其数据
0
d
dreamFlyFly

针对b表写个存储过程。修改的时候同时修改a表!

返回顶部
顶部