我有同樣的問題並解決添加「新「。在更新字段之前。我在這裏發表充滿觸發有人想寫一個觸發器
DELIMITER $$
USE `nc`$$
CREATE
TRIGGER `nhachung_province_count_update` BEFORE UPDATE ON `nhachung`
FOR EACH ROW BEGIN
DECLARE slug_province VARCHAR(128);
DECLARE slug_district VARCHAR(128);
IF old.status!=new.status THEN /* neu doi status */
IF new.status="Y" THEN
UPDATE province SET `count`=`count`+1 WHERE id = new.district_id;
ELSE
UPDATE province SET `count`=`count`-1 WHERE id = new.district_id;
END IF;
ELSEIF old.province_id!=new.province_id THEN /* neu doi province_id + district_id */
UPDATE province SET `count`=`count`+1 WHERE id = new.province_id; /* province_id */
UPDATE province SET `count`=`count`-1 WHERE id = old.province_id;
UPDATE province SET `count`=`count`+1 WHERE id = new.district_id; /* district_id */
UPDATE province SET `count`=`count`-1 WHERE id = old.district_id;
SET slug_province = (SELECT slug FROM province WHERE id= new.province_id LIMIT 0,1);
SET slug_district = (SELECT slug FROM province WHERE id= new.district_id LIMIT 0,1);
SET new.prov_dist_url=CONCAT(slug_province, "/", slug_district);
ELSEIF old.district_id!=new.district_id THEN
UPDATE province SET `count`=`count`+1 WHERE id = new.district_id;
UPDATE province SET `count`=`count`-1 WHERE id = old.district_id;
SET slug_province = (SELECT slug FROM province WHERE id= new.province_id LIMIT 0,1);
SET slug_district = (SELECT slug FROM province WHERE id= new.district_id LIMIT 0,1);
SET new.prov_dist_url=CONCAT(slug_province, "/", slug_district);
END IF;
END;
$$
DELIMITER ;
希望這有助於有人
什麼是你想用你的觸發器做什麼?表架構,示例數據和示例INSERT查詢將幫助很多 – Steve 2013-03-08 18:22:50
我想將案例更改爲enrered行值的大寫。所以我希望這個觸發器能夠在輸入一行時自動爲我執行此操作。我不想要JavaScript。 – 2013-03-08 18:30:33
@EricLeschinski我不知道他在那個問題上做了什麼。 – 2013-03-08 18:32:53