0 • SDKhe • 1年前 • 178次点击
AntDB数据库怎么把两个表明对调?
在类似pt-osc场景下,需要将两个表名对调,怎么才能确保万无一失?想要的是同时完成表名对调,如果是先后的对掉,相互RENAME一下,可能会导致有些数据写入失败。可以同时锁定2个表,不允许写入,然后对调表名。LOCK TABLES t1 WRITE, t2 WRITE;ALTER TABLE t1 RENAME TO t3;ALTER TABLE t2 RENAME TO t1;ALTER TABLE t3 RENAME TO t2;UNLOCK TABLES;
积分:40
在类似pt-osc场景下,需要将两个表名对调,怎么才能确保万无一失?
想要的是同时完成表名对调,如果是先后的对掉,相互RENAME一下,可能会导致有些数据写入失败。
可以同时锁定2个表,不允许写入,然后对调表名。
LOCK TABLES t1 WRITE, t2 WRITE;
ALTER TABLE t1 RENAME TO t3;
ALTER TABLE t2 RENAME TO t1;
ALTER TABLE t3 RENAME TO t2;
UNLOCK TABLES;