#1314-锁

pgvzfuti  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(203)

我有生产中的tb\u event\u log表,我需要将prod数据传输到同一台服务器上的虚拟表中,并截断生产表,同时要锁定生产表。我是db的新手,有谁能提出有效的方法来做同样的事情。

CREATE event transfer_data
ON SCHEDULE EVERY 12 hour
STARTS  CURRENT TIME_STAMP
DO
BEGIN

LOCK TABLE TB_EVENT_LOG WRITE;
INSERT INTO TB_EVENT_LOG_dummy SELECT * FROM TB_EVENT_LOG ;
UNLOCK TABLES;
TRUNCATE TABLE TB_EVENT_LOG;

END |
DELIMITER ;
cbjzeqam

cbjzeqam1#

为了确保只从生产表中删除复制的记录,可以使用事务而不是表锁定。
例如

START TRANSACTION;
INSERT INTO TB_EVENT_LOG_dummy SELECT * FROM TB_EVENT_LOG ;
TRUNCATE TABLE TB_EVENT_LOG;
COMMIT;

相关问题