MySQL 是一個(gè)強(qiáng)大的數(shù)據(jù)庫(kù)管理系統(tǒng),它可以幫助我們保存大量的數(shù)據(jù),并且還可以通過(guò)定時(shí)任務(wù)來(lái)抓取數(shù)據(jù)并插入到新表中,接下來(lái)我們來(lái)介紹下這個(gè)過(guò)程。
首先,我們需要?jiǎng)?chuàng)建一個(gè)新的數(shù)據(jù)表,用來(lái)存儲(chǔ)我們抓取到的數(shù)據(jù):
CREATE TABLE new_table ( id INT PRIMARY KEY, name VARCHAR(50), age INT );
接著,我們需要編寫(xiě)一個(gè) SQL 查詢(xún)語(yǔ)句,用來(lái)抓取數(shù)據(jù)。在這里,我們以抓取用戶表中所有年齡大于 20 歲的用戶的信息為例:
SELECT id, name, age FROM user_table WHERE age >20;
然后,我們需要?jiǎng)?chuàng)建一個(gè)存儲(chǔ)過(guò)程,用來(lái)執(zhí)行這個(gè) SQL 查詢(xún),并將查詢(xún)結(jié)果插入到新表中:
DELIMITER // CREATE PROCEDURE insert_data() BEGIN INSERT INTO new_table (id, name, age) SELECT id, name, age FROM user_table WHERE age >20; END // DELIMITER ;
最后,我們需要?jiǎng)?chuàng)建一個(gè)定時(shí)任務(wù),用來(lái)定時(shí)執(zhí)行這個(gè)存儲(chǔ)過(guò)程。在這里,我們以每天凌晨 1 點(diǎn)執(zhí)行為例:
CREATE EVENT insert_event ON SCHEDULE EVERY 1 DAY STARTS '2019-01-01 01:00:00' DO CALL insert_data();
現(xiàn)在,我們已經(jīng)完成了定時(shí)抓取數(shù)據(jù)并插入新表的整個(gè)過(guò)程。如果需要修改抓取的數(shù)據(jù)和執(zhí)行的時(shí)間,只需要修改 SQL 查詢(xún)語(yǔ)句和定時(shí)任務(wù)的時(shí)間即可。