我是編寫mysql觸發器的新手。當更新或插入表中發生更新列值時創建觸發器
這裏是創建SQL語句
CREATE TABLE BRAND_PROFILE_MAPPING (
PROFILE_MAPPING_ID BIGINT(20) NOT NULL AUTO_INCREMENT,
DOTLOOP_PROFILE_ID BIGINT(20) NULL DEFAULT NULL,
BRAND_PROFILE_ID VARCHAR(255) NULL DEFAULT NULL,
PROFILE_TYPE VARCHAR(90) NULL DEFAULT NULL,
PROFILE_NAME VARCHAR(225) NULL DEFAULT NULL,
SOURCE VARCHAR(255) NULL DEFAULT NULL,
PROFILE_HASH VARCHAR(32) NULL DEFAULT NULL,
ENTERED_DATE DATETIME NULL DEFAULT NULL,
CHANGED_DATE DATETIME NULL DEFAULT NULL,
PRIMARY KEY (PROFILE_MAPPING_ID)
);
我創建基於上述structure.here表我有2場ENTERED_DATE DATETIME CHANGED_DATE DATETIME,日期列,我想寫觸發如果任何插入操作都如果有更新操作應該插入日期字段,更新日期字段應該被更新。 感謝您的幫助。提前致謝!
你能分享的'表結構brand_profile_mapping_log'此表 – 2014-12-09 11:53:13
爲什麼不使用插入語句作爲'insert into brand_profile_mapping_log(PROFILE_MAPPING_ID BIGINT,DOTLOOP_PROFILE_ID BIGINT,BRAND_PROFILE_ID,PROFILE_TYPE,PROFILE_NAME,SOURCE ,PROFILE_HASH)'values(NEW.profile_mapping_id,...)' – 2014-12-09 11:53:32
在你創建的表中使用'timestamp'類型代替'datetime' ENTERED_DATE DATETIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'你不需要'changed_date'列這張桌子。您無需爲此編寫觸發器 – Gunaseelan 2014-12-09 12:15:29