gpt4 book ai didi

mysql - 在另一个表中插入或更新时增加/减少列

转载 作者:行者123 更新时间:2023-11-29 20:52:38 24 4
gpt4 key购买 nike

所以考虑一下:我有两张表,第一个是“机器”,第二个是“租赁”。我在机器中有一个名为“inRental”的 bool 列,当机器未租用时为 0,当机器租用时为 1。我在租赁中还有一个名为“完成”的 bool 列,当机器仍在租赁时为 0,当租赁完成时为 1(我不删除租赁条目,因为我想跟踪租赁历史记录)。所以我想要的是,当该机器的新租赁条目插入到“rentals”中时,将“machines.inRental”列增加或设置为 1。例如,当我创建新的租赁时,我会:

INSERT INTO rentals VALUES (0,:machineID,0) 

当这种情况发生时,我想:

UPDATE machines SET inRental=1 WHERE MachineID=:machineID

租赁完成后我想要类似的:

UPDATE rentals SET finished=1 WHERE MachineID=:machineID

UPDATE machines SET inRental=0 WHERE MachineID=:machineID

表格是这样的:

RentalID  MachineID    finished   ...
.....................................
1 5 1
2 6 1
3 7 0


MachineID inRental ...
.........................
5 0
6 0
7 1

我猜这是通过触发器实现的,但是如何实现呢?我还听说触发器很糟糕,最好避免它们。有没有更好的办法?我知道,Rental 中的列可能看起来是多余的,我可以只进行连接,但我在子查询中与其他表一起使用很多次表“机器”,我发现必须在其中进行连接有点低效和困惑子查询,不是吗?

最佳答案

触发器的使用完全取决于您的要求,您也可以使用存储过程。引用:http://www.madeiradata.com/real-performance-impact-of-triggers/

关于mysql - 在另一个表中插入或更新时增加/减少列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37905895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com