gpt4 book ai didi

mysql - 如何从mysql中的不同表更新计数器字段

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

我在 MySQL 中有 3 个表 ParkIn{parkin_id,InTime}ParkOut{parkout_id,OutTime}Counter{ Counter_ID, Counter} 。每次 Parkin 表中存在插入时,我都需要 Counter 列将其先前的值加 1,每当 ParkOut 表中存在插入时,我需要 counter 列减去 1。计数器表不一定需要插入新行每次,而是不断更新计数器值。

最佳答案

你这样做很困难。

你可以做到

      SELECT (parkin.rowcount - parkout.rowcount) Counter
FROM (SELECT COUNT(*) rowcount FROM ParkIn) parkin
JOIN (SELECT COUNT(*) rowcount FROM ParkOut) parkout

当您需要您所描述的值时。您可以相信数据库就是为完成此类任务而设计的。

如果您确实想要有一个 Counter 表的错觉,您可以创建一个 View 。

      CREATE OR REPLACE VIEW Counter AS
SELECT (parkin.rowcount - parkout.rowcount) Counter
FROM (SELECT COUNT(*) rowcount FROM ParkIn) parkin
JOIN (SELECT COUNT(*) rowcount FROM ParkOut) parkout

正如您在问题中所描述的那样,您的计数器表在 DBMS 行业中被称为“物化 View ”。它是“物化的”,因为它是您实际实时维护的实际表。我建议使用普通 View 而不是物化 View 来解决您的问题。

关于mysql - 如何从mysql中的不同表更新计数器字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41245922/

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