mysql - 每次在mysql中更新时,如何使触发器累积数据?
问题描述
我有一个代表我不断更新的状态的“房间状态”表。
CREATE TABLE ROOMSTATE
(
`RoomState_ID` INT NOT NULL AUTO_INCREMENT ,
`Room_ID` INT NOT NULL ,
`RoomState_State` BOOL NULL ,
`Cust_ID` INT NULL ,
`Booking_ID` INT NULL ,
CONSTRAINT PRIMARY KEY (Roomstate_ID)
);
当员工将房间分配给客户并显示房间状态时,此表会更新。
INSERT INTO ROOMSTATE(Room_ID, RoomState_State, Cust_ID, Booking_ID)
(select room_id, '0', null, null from room);
select * from roomstate;
-------------------------------------------------------------------
Roomstate_ID ROOM_ID ROOMSTATE_STATE CUST_ID BOOKING_ID
1 1 0 NULL NULL
2 2 0 NULL NULL
3 3 0 NULL NULL
4 4 0 NULL NULL
5 5 0 NULL NULL
----------------------------------------------------------------
当员工将房间 2 分配给 booking_id 为 2 的客户 1 时,就会发生这种情况。
select @custid = 2;
select @Bookingid := (select booking_id from booking where cust_id = @custid),
@RoomAloct := 1;
UPDATE roomstate
SET booking_id = @Bookingid
where roomstate.room_id = @RoomAloct;
UPDATE roomstate
INNER JOIN booking ON roomstate.booking_id = booking.booking_id
SET roomstate.cust_id=booking.cust_id;
UPDATE roomstate
SET roomstate_state = 1
where roomstate.cust_id IS NOT NULL ;
select * from roomstate;
-------------------------------------------------------------------
Roomstate_ID ROOM_ID ROOMSTATE_STATE CUST_ID BOOKING_ID
1 1 1 2 2
2 2 0 NULL NULL
3 3 0 NULL NULL
4 4 0 NULL NULL
5 5 0 NULL NULL
----------------------------------------------------------------
由于上表不断更新,现有内容可能再次变为NULL。
我想在另一个表中记录更新它。
例子 :
--------------------------------------------------------------------------------------
PK_LOGTB ROOM_ID ROOMSTATE_STATE CUST_ID BOOKING_ID DATETIME
1 1 1 2 2 2021-06-06 00:00:00(NOW)
2 2 1 5 3 2021-06-06 00:00:00(NOW)
3 3 1 8 4 2021-06-06 00:00:00(NOW)
4 1 0 2 2 2021-06-07 00:00:00(NOW)
-----------------------------------------------------------------------------------------
我怎样才能得到这个日志表?我想我必须写一个触发器。
解决方案
推荐阅读
- android - Firebase 控制台 sdk 设置显示为未完成
- reactjs - 纱线构建和纱线安装有什么区别?
- jenkins - 从 jenkins pippeline 读取 yaml 后无法访问 yaml 对象
- android - 如何处理通知中的待处理意图
- javascript - 如何根据从数组循环返回的值隐藏和显示图像和文本标签
- c# - 正确的结构编组
- waf - 捕获 waf 的 run_str 输出以进行进一步处理
- ios - 帧时间戳要么乱序要么重复
- kendo-ui - KendoUI 图表 - 修复饼图宽度而不是 chartArea 以避免切割部分图例
- powershell - 如何使用powershell处理无限循环的日志文件?