MySQL如何在不关联两张表的前提下将其他表数据更新到视图中
解决方案
首先明确前提:你所说的「不关联两张表」如果是指不需要修改现有视图的查询逻辑、不需要在视图定义中添加JOIN/UNION等关联test2的语法,是可以实现的,具体方案如下:
方案:将test2数据同步到test1表
你当前的test_view仅绑定test1表的查询逻辑,视图本身不存储实际数据,只要让test1表包含test2的全量数据,视图自然会返回你预期的结果。
执行以下插入语句即可:
INSERT INTO test1 SELECT * FROM test2;
注意事项
- 该方案要求
test1和test2的字段顺序、字段类型完全匹配,你给出的示例结构符合该要求 - 需确保
test2的主键(示例中为id字段)和test1现有数据没有冲突,你的示例中test1id最大为3,test2id从4开始,不会触发主键冲突,可直接执行 - 执行后
test1的原始数据会被修改,如果你需要保留test1的原始数据独立存储,该方案不适用
特殊前提说明
如果你所说的「不关联两张表」是指既不能修改test1的原始数据,也不能在视图定义中增加和test2的关联逻辑,那么无法实现该需求:
视图本质是预存储的SQL查询规则,只能返回查询规则覆盖的数据源内的数据,不关联test2的情况下无法凭空读取到test2的内容。
内容的提问来源于stack exchange,提问作者LeCoconutWhisperer
相关产品推荐
相关产品推荐

