MySQL数据库间数据同步:使用存储过程同步cubicscanner_to_wms表数据
{/'title/':/'MySQL数据库间数据同步:使用存储过程同步cubicscanner_to_wms表数据/',/'description/':/'本篇文章将详细介绍使用MySQL存储过程将cubicscanner_to_wms表数据从一个MySQL数据库同步到另一个不同IP的MySQL数据库。提供完整示例代码和步骤说明。/',/'keywords/':/'MySQL, 存储过程, 数据同步, cubicscanner_to_wms, 不同IP/',/'content/':/'///'CREATE DEFINER=//wmsop//@//目标IP// PROCEDURE //sp_sync_cubicscanner_to_wms//()//nBEGIN//n -- 定义变量//n DECLARE old_table VARCHAR(50);//n DECLARE new_table VARCHAR(50);//n DECLARE sync_table VARCHAR(50);//n DECLARE record_type VARCHAR(50);//n DECLARE last_sync_date_time DATETIME;//n//n -- 设置变量值//n SET old_table = ///'//源IP//.wms.cubicscanner_to_wms/////';//n SET new_table = ///'//目标IP//.lvmhpc_temp_wms_prod.cubicscanner_to_wms/////';//n SET sync_table = ///'//目标IP//.lvmhpc_temp_wms_prod.sync_table/////';//n SET record_type = ///'cubicscanner_to_wms///';//n SET last_sync_date_time = ///'1970-01-01 00:00:01///';//n//n -- 获取最新同步时间//n SET @get_sync_time_sql := CONCAT(///'SELECT @last_sync_date_time:= IFNULL(MIN(lastSyncDateTime),@last_sync_date_time) //n FROM ///', sync_table, ///' WHERE recordType = '///', record_type, ///''///'///');//n PREPARE get_sync_time_sql FROM @get_sync_time_sql;//n EXECUTE get_sync_time_sql;//n DEALLOCATE PREPARE get_sync_time_sql;//n//n -- 批量插入新表数据//n SET @insert_new_table_sql := CONCAT(///'REPLACE INTO ///', new_table, ///' //n SELECT * FROM ///', old_table, ///' WHERE lastUpdateData >= @last_sync_date_time LIMIT 1000///');//n PREPARE insert_new_table_sql FROM @insert_new_table_sql;//n EXECUTE insert_new_table_sql;//n DEALLOCATE PREPARE insert_new_table_sql;//n//n -- 更新同步后数据时间//n SET @update_new_table_sql := CONCAT(///'SELECT @last_sync_date_time := IFNULL(MAX(lastUpdateData), @last_sync_date_time) //n FROM ///', new_table, ///' WHERE lastUpdateData >= @last_sync_date_time///');//n PREPARE update_new_table_sql FROM @update_new_table_sql;//n EXECUTE update_new_table_sql;//n DEALLOCATE PREPARE update_new_table_sql;//n//n -- 更新sync时间//n SET @update_sync_time_sql := CONCAT(///'REPLACE INTO ///', sync_table, ///' (recordType, lastSyncDateTime) VALUES ('///', record_type, ///'', @last_sync_date_time)///'///');//n PREPARE update_sync_time_sql FROM @update_sync_time_sql;//n EXECUTE update_sync_time_sql;//n DEALLOCATE PREPARE update_sync_time_sql;//n//n UPDATE lvmhpc_temp_wms_prod.cubicscanner_to_wms SET WMS_READ = 0 WHERE WMS_READ = 1;//nEND//n///'//n///'CALL //目标IP//.sp_sync_cubicscanner_to_wms//();///'///n请您将代码中的///'源IP///'和///'目标IP///'替换为实际的源和目标数据库IP地址。//n确保两个数据库之间建立了连接,并且您拥有执行存储过程和数据同步操作的必要权限。//n//n注意:在执行数据同步操作之前,请确保您已经备份了源数据库中的数据,以防意外发生。//n//n希望这篇文章能够帮助您顺利完成MySQL数据库间的数据同步操作。//n//n/',/'content/':/'///'CREATE DEFINER=//wmsop//@//目标IP// PROCEDURE //sp_sync_cubicscanner_to_wms//()//nBEGIN//n -- 定义变量//n DECLARE old_table VARCHAR(50);//n DECLARE new_table VARCHAR(50);//n DECLARE sync_table VARCHAR(50);//n DECLARE record_type VARCHAR(50);//n DECLARE last_sync_date_time DATETIME;//n//n -- 设置变量值//n SET old_table = ///'//源IP//.wms.cubicscanner_to_wms/////';//n SET new_table = ///'//目标IP//.lvmhpc_temp_wms_prod.cubicscanner_to_wms/////';//n SET sync_table = ///'//目标IP//.lvmhpc_temp_wms_prod.sync_table/////';//n SET record_type = ///'cubicscanner_to_wms///';//n SET last_sync_date_time = ///'1970-01-01 00:00:01///';//n//n -- 获取最新同步时间//n SET @get_sync_time_sql := CONCAT(///'SELECT @last_sync_date_time:= IFNULL(MIN(lastSyncDateTime),@last_sync_date_time) //n FROM ///', sync_table, ///' WHERE recordType = '///', record_type, ///''///'///');//n PREPARE get_sync_time_sql FROM @get_sync_time_sql;//n EXECUTE get_sync_time_sql;//n DEALLOCATE PREPARE get_sync_time_sql;//n//n -- 批量插入新表数据//n SET @insert_new_table_sql := CONCAT(///'REPLACE INTO ///', new_table, ///' //n SELECT * FROM ///', old_table, ///' WHERE lastUpdateData >= @last_sync_date_time LIMIT 1000///');//n PREPARE insert_new_table_sql FROM @insert_new_table_sql;//n EXECUTE insert_new_table_sql;//n DEALLOCATE PREPARE insert_new_table_sql;//n//n -- 更新同步后数据时间//n SET @update_new_table_sql := CONCAT(///'SELECT @last_sync_date_time := IFNULL(MAX(lastUpdateData), @last_sync_date_time) //n FROM ///', new_table, ///' WHERE lastUpdateData >= @last_sync_date_time///');//n PREPARE update_new_table_sql FROM @update_new_table_sql;//n EXECUTE update_new_table_sql;//n DEALLOCATE PREPARE update_new_table_sql;//n//n -- 更新sync时间//n SET @update_sync_time_sql := CONCAT(///'REPLACE INTO ///', sync_table, ///' (recordType, lastSyncDateTime) VALUES ('///', record_type, ///'', @last_sync_date_time)///'///');//n PREPARE update_sync_time_sql FROM @update_sync_time_sql;//n EXECUTE update_sync_time_sql;//n DEALLOCATE PREPARE update_sync_time_sql;//n//n UPDATE lvmhpc_temp_wms_prod.cubicscanner_to_wms SET WMS_READ = 0 WHERE WMS_READ = 1;//nEND//n///'//n///'CALL //目标IP//.sp_sync_cubicscanner_to_wms//();///'///n请您将代码中的///'源IP///'和///'目标IP///'替换为实际的源和目标数据库IP地址。//n确保两个数据库之间建立了连接,并且您拥有执行存储过程和数据同步操作的必要权限。//n//n注意:在执行数据同步操作之前,请确保您已经备份了源数据库中的数据,以防意外发生。//n//n希望这篇文章能够帮助您顺利完成MySQL数据库间的数据同步操作。//n//n/
原文地址: https://www.cveoy.top/t/topic/psOy 著作权归作者所有。请勿转载和采集!