在數據庫應用中,我們經常需要在不同的庫之間同步數據。特別是在多個業務系統的情況下,不同的系統會使用不同的數據庫,但往往需要對共享的數據進行操作,此時就需要跨庫表同步數據。
在MySQL中,跨庫表同步數據可以使用多種方式,本文主要介紹兩種:使用存儲過程和使用觸發器。
使用存儲過程
CREATE PROCEDURE `sync_data`() BEGIN DECLARE v_id INT; DECLARE v_name VARCHAR(50); DECLARE v_email VARCHAR(50); -- 遠程數據庫連接信息 SET @remote_host = '192.168.1.100'; SET @remote_db = 'remote_db'; SET @remote_user = 'root'; SET @remote_password = '123456'; DECLARE remote_cur CURSOR FOR SELECT id, name, email FROM remote_db.users; OPEN remote_cur; remote_loop:LOOP FETCH remote_cur INTO v_id, v_name, v_email; IF v_id IS NULL THEN LEAVE remote_loop; END IF; -- 插入本地數據庫 INSERT INTO local_db.users(id, name, email) VALUES(v_id, v_name, v_email); END LOOP; CLOSE remote_cur; END;
使用觸發器
CREATE TRIGGER sync_data AFTER INSERT ON remote_db.users FOR EACH ROW BEGIN -- 插入本地數據庫 INSERT INTO local_db.users(id, name, email) VALUES(NEW.id, NEW.name, NEW.email); END;
以上是兩種常見的方式,適用于不同的場景和需求。其中,使用存儲過程可以對跨庫表的數據進行更詳盡的處理和篩選,而使用觸發器可以使數據同步更加實時、無縫。
上一篇mysql 跨庫表同步
下一篇css選擇器的優先級繼承