MySQL如何使用触发器将值减少1
我正在用MySQL建立一个简单的视频游戏商店库存和销售数据库。 目前我有一个库存表: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表中
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的文档。