我有一个基于我的数据库中的产品表构建的长列表 API 调用,今天我们想向该表添加一个子产品(添加一个新表或自反关系)
但是我们需要避免编辑所有API的Call / Query,Mysql下有没有解决方案可以在执行之前编辑查询的子句?
实际上没有直接回答您的问题,但无论如何它可能会有所帮助。
您可以创建一个视图,它就像一个虚拟表。例如,如果您有桌子
product(id, attr1)
subproduct(id, subattr1, subattr2)
您可以创建一个视图
CREATE VIEW legacy_products AS
SELECT
p.id, p.attr, s.subattr
FROM
products p LEFT JOIN subproducts s ON p.id = s.id
如果您仔细定义视图,您可以避免更改一长串 API 调用。但前提是它们仅包含SELECT
查询。可以使视图可更新,但对于两个或多个基表上的视图(如示例中所示),这通常是不正确的。
SQLFiddle 玩弄:http ://sqlfiddle.com/#!2/85676/1 查看此视图定义:http ://dev.mysql.com/doc/refman/5.1/en/create-view.html