gpt4 book ai didi

mysql - 动态MySQL表

转载 作者:行者123 更新时间:2023-11-29 12:05:58 25 4
gpt4 key购买 nike

这是我的情况。我的数据库中有 9 个表,它们都有一个 c_no (int)、一个 cl_no (int) 和一个 status (boolean)。我需要知道创建动态表的最佳方法,该动态表清楚地显示 c_no、cl_no 以及它来自哪个表(以数字表示)。

困难的部分是使其对所有状态 1 使用react或动态。假设有人更新了我们需要删除该记录的状态之一。另外,如果有人将其中一个 cl_no 更新为新的,我们需要将其插入到表中,并且如果原始表中不再存在该 c_no 的 cl_no,我们也需要将其删除。基本上我们需要一个整合所有信息的最新表格。

示例:

表_One

c_no、cl_no、状态

1,1,1

1,2,1

1,1,1

1,1,1

1,1,0

表_Two

c_no、cl_no、状态

1,10,1

1,3,1

1,32,1

1,1,0

Desired_Table

c_no,cl_no,ref_table

1,1,1

1,2,1

1,32,2

1,3,2

1,10,2

我尝试了以下方法但没有成功,

1.) 创建一个运行时间超过 50 秒的 View ,我们需要它在 1 秒内返回结果。有 9 个连接,查询运行时间太长。

2.) 为每个表创建触发器,但在测试用例中导入或更新 10,000 条记录时,响应时间呈指数增长,远超过 2 分钟。

抱歉格式不佳。预先感谢您的时间和帮助!!

最佳答案

我认为您正在寻找工会声明。类似的东西

SELECT c_no, cl_no, 1 FROM Table_One WHERE status = 1
UNION ALL
SELECT c_no, cl_no, 1 FROM Table_Two WHERE status = 1

如果您将其粘贴到 View 中,它将是动态的并且可以免费使用。这确实假设您不需要以任何方式删除或处理两个表之间的重复项。需要稍微更改查询来管理它。

您对 UNION 的其他选择类似于

SELECT c_no, cl_no, table_id FROM ( SELECT c_no, cl_no, 1 as table_id, status FROM Table_One UNION ALL SELECT c_no, cl_no, 1 as table_id, status FROM Table_Two ) lookup WHERE status = 1

这些查询都没有经过测试,但应该可以为您提供一些选择的想法

您最初的查询是什么?

关于mysql - 动态MySQL表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31478799/

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