我有同样的问题并解决添加“新“。在更新字段之前。我在这里发表充满触发有人想写一个触发器
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