MySQL基礎:觸發器

來源:互聯網
上載者:User

廢話不多說。自己看看吧.等以後有時間了再完善完善.^-^

Sql代碼

CREATE TABLE `vardata` (    `Id` int(11) NOT NULL AUTO_INCREMENT,    `name` varchar(255) DEFAULT NULL,    `time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',    `data` double(15,5) DEFAULT '-601.00000',    PRIMARY KEY (`Id`,`time`),    UNIQUE KEY `unique` (`name`,`time`)  )        CREATE TABLE `vardata_compute` (    `Id` int(11) NOT NULL AUTO_INCREMENT,    `name` varchar(255) DEFAULT NULL,    `time` datetime DEFAULT NULL,    `data` double(15,5) DEFAULT NULL,    PRIMARY KEY (`Id`)  )

Sql代碼

DROP TRIGGER IF EXISTS trigger_insert_59data;  CREATE TRIGGER trigger_insert_59data   AFTER INSERT ON vardata   FOR EACH ROW   BEGIN     DECLARE time_59 DateTime;                     SET time_59 = NEW.time-INTERVAL 1 SECOND;        IF MINUTE(NEW.time)=0 AND SECOND(NEW.time)=0 THEN        INSERT INTO vardata_compute SET name=NEW.name,time=time_59,data=NEW.data;         END IF;     END;        DROP TRIGGER IF EXISTS trigger_delete_59data;  CREATE TRIGGER trigger_delete_59data   AFTER DELETE ON vardata   FOR EACH ROW   BEGIN     DECLARE time_59 DateTime;            SET time_59 = OLD.time-INTERVAL 1 SECOND;        IF MINUTE(OLD.time)=0 AND SECOND(OLD.time)=0 THEN             DELETE FROM vardata_compute WHERE time=time_59 AND name=old.name;       END IF;     END;        DROP TRIGGER IF EXISTS trigger_update_59data;  CREATE TRIGGER trigger_update_59data   AFTER UPDATE ON vardata   FOR EACH ROW   BEGIN     DECLARE time_59 DateTime;            SET time_59 = NEW.time-INTERVAL 1 SECOND;        IF MINUTE(NEW.time)=0 AND SECOND(NEW.time)=0 THEN                  UPDATE vardata_compute SET data=NEW.data WHERE time=time_59 AND name=NEW.name;       END IF;END;

查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/database/MySQL/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.