编写一段mysql代码 条件是 默认order_info表的o_statistics值为0 当order_info表中的字段h_id数据增加或者减少1时 且order_info表中的字段h_id = hotel_info表中的字段h_id, 则order_info表的o_statistics值也增加或减少1
时间: 2024-03-23 11:40:10 浏览: 15
可以使用MySQL的触发器来实现这个功能,具体代码如下:
```
CREATE TRIGGER update_order_statistics
AFTER INSERT ON order_info
FOR EACH ROW
BEGIN
IF NEW.o_statistics = 0 AND NEW.h_id = (SELECT h_id FROM hotel_info WHERE h_id = NEW.h_id) THEN
UPDATE order_info SET o_statistics = o_statistics + 1 WHERE h_id = NEW.h_id;
END IF;
END;
CREATE TRIGGER delete_order_statistics
AFTER DELETE ON order_info
FOR EACH ROW
BEGIN
IF OLD.o_statistics = 1 AND OLD.h_id = (SELECT h_id FROM hotel_info WHERE h_id = OLD.h_id) THEN
UPDATE order_info SET o_statistics = o_statistics - 1 WHERE h_id = OLD.h_id;
END IF;
END;
```
这个触发器包括两个部分,一个是在插入订单信息时触发的部分,一个是在删除订单信息时触发的部分。当插入新的订单信息时,如果该订单的o_statistics值为0且其h_id与hotel_info表中的h_id匹配,则将该订单的o_statistics值加1;当删除订单信息时,如果被删除的订单的o_statistics值为1且其h_id与hotel_info表中的h_id匹配,则将该订单的o_statistics值减1。这样就可以实现根据h_id的增加或减少来更新订单的o_statistics值了。