Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL如何使用触发器将值减少1_Mysql_Triggers - Fatal编程技术网

MySQL如何使用触发器将值减少1

MySQL如何使用触发器将值减少1,mysql,triggers,Mysql,Triggers,我正在用MySQL建立一个简单的视频游戏商店库存和销售数据库。 目前我有一个库存表: game_id count 1 5 2 2 3 1 4 7 还有一张销售桌 game_id price otherstuff 3 xxx xxxxx 2 xxxx xxxxxxxx 我想创建一个触发器来检查添加到sales表中

我正在用MySQL建立一个简单的视频游戏商店库存和销售数据库。 目前我有一个库存表:

game_id      count
1            5
2            2
3            1
4            7
还有一张销售桌

game_id      price     otherstuff 
3            xxx       xxxxx
2            xxxx      xxxxxxxx
我想创建一个触发器来检查添加到sales表中的game_id。然后在库存表中将计数减少-1。我猜是“更新后”

测试此脚本后,每次我插入一些新的销售时,它只会将每个游戏id计数减少-1。

您需要使用新的:

CREATE DEFINER=`root`@`localhost` 
   TRIGGER `sales_AFTER_INSERT` 
   AFTER INSERT ON `sales` FOR EACH ROW 
   BEGIN
        update inventory set count = count-1 where game_id = new.game_id;
END
您需要使用新的:

CREATE DEFINER=`root`@`localhost` 
   TRIGGER `sales_AFTER_INSERT` 
   AFTER INSERT ON `sales` FOR EACH ROW 
   BEGIN
        update inventory set count = count-1 where game_id = new.game_id;
END

查询中的
游戏id
不正确。如果要从修改的记录中获取
game\u id
,应使用
NEW.game\u id

CREATE DEFINER =`root`@`localhost`
  TRIGGER `sales_AFTER_INSERT`
  AFTER INSERT
  ON `sales`
  FOR EACH ROW
BEGIN
  UPDATE inventory SET count = count - 1 WHERE game_id = NEW.game_id;
END

查询中的
游戏id
不正确。如果要从修改的记录中获取
game\u id
,应使用
NEW.game\u id

CREATE DEFINER =`root`@`localhost`
  TRIGGER `sales_AFTER_INSERT`
  AFTER INSERT
  ON `sales`
  FOR EACH ROW
BEGIN
  UPDATE inventory SET count = count - 1 WHERE game_id = NEW.game_id;
END

成功了!非常感谢。我应该多看看触发器和SQL的文档,这很管用!非常感谢。我应该多看看触发器和SQL的文档。