IDEA:
现在有一个项目、用户和分配的表,如果我将一个项目分配给用户,记录将保存在指定表上,
table_item:
ID------INT
NAME----TEXT
COUNT---INT
table_user:
ID-------INT
NAME-----TEXT
table_assing:
ID------INT
USER----INT (user id)
ITEM----INT (item_id)
COUNT---INT (this is for subtractions from the column of COUNT table of item)
在这里,我想设置插入到表(table_assing)时的触发器,列COUNT的值应该从table_item的UNTtable的列中减去
这在PHP上是可能的,我可以将其设置为查询一次操作,但如果在MySQL上可能的话,这将需要大量的代码,这些代码将更好、快速、有效且准确。
UPDATE table_item
SET table_item.count = (table_item.count - NEW.table_assign.count)
WHERE table_item.id = table_assign.item
这样的东西应该可以工作。
DELIMITER $$
USE database_name$$
CREATE TRIGGER trigger_name AFTER INSERT ON table_asign FOR EACH ROW
BEGIN
UPDATE table_item SET count=count+NEW.count WHERE id=NEW.id;
END;$$
"NEW.id"指的是表"table_asign"中的新行