MySQL触发器计算,在其他表上插入一个表效果

时间:2014-10-15 06:12:40

标签: php mysql sql triggers

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 的值应从 COUNT 表的列中减去 table_item

这可以在我可以设置为一次动作查询的PHP上,但是如果它可以在mysql上实现更好,更快更有效,并且需要大量代码

提前致以最诚挚的问候

2 个答案:

答案 0 :(得分:1)

插入表table_assign

后的

简单触发器

UPDATE table_item
     SET table_item.count = (table_item.count - NEW.table_assign.count)
   WHERE table_item.id = table_assign.item

答案 1 :(得分:1)

这样的事情应该有效。

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;'