触发器计算,插入一个表时会对另一个表产生影响


Trigger calculation, on insert of one table effect on other table

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_itemUNTtable的列中减去

这在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"中的新行