這里要用到3個(gè)觸發(fā)器,一個(gè)更新,一個(gè)刪除,一個(gè)修改的,給你個(gè)參考吧
專注于為中小企業(yè)提供成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)相城免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
CREATE TRIGGER `trig_a` AFTER INSERT ON `a` FOR EACH ROW
BEGIN
SELECT ID INTO @c from b where ID=NEW.ID;
if @c is not null then
insert into b(ID) VALUES(NEW.ID);
END
數(shù)據(jù)量多大???一般幾千萬(wàn)條數(shù)據(jù)如果創(chuàng)建好合理的索引然后優(yōu)化語(yǔ)句基本幾秒都可以搞定。
你說(shuō)的中間表是不是臨時(shí)表
例:如何實(shí)現(xiàn)隨機(jī)更新表里的幾條數(shù)據(jù)。
思路1:先隨機(jī)查詢幾條記錄
思路2:更新這幾條記錄。
但是你如果直接寫(xiě) Update table1 SET ....... where ID in (select ID from table1 ORDER BY RAND() limit 1)
這種情況就會(huì)報(bào)錯(cuò)。不能再查詢時(shí)同時(shí)對(duì)該表進(jìn)行修改。這個(gè)時(shí)候就需要將查詢語(yǔ)句查出來(lái)的表放到臨時(shí)表。
update table1 Set ...... where ID in(SELECT F.ID FROM (SELECT * FROM table1 ORDER BY RAND() LIMIT 2) F)