MySQL:根据表格内容自动生成视图

时间:2013-04-20 19:41:16

标签: mysql view triggers

我有一个数据库,其中有一个包含电子组件的表。我想根据组件的类型创建视图。

假设我的表格为2个字段:

  • 分类
  • 子类别

现在让我说我的表中有许多径向Rasistor。它们都有类别:电阻,子类别:径向。 我想执行这样的查询:

CREATE VIEW `Resistor - Radial` AS SELECT * FROM `components` WHERE `Category`='Resistor' AND `Sub Category`='Radial'

这很容易。现在,我希望每次用户输入新零件,删除零件或修改现有零件时自动生成这些视图。我想过触发器,但对它们不太了解。会触发一个好方法吗?

1 个答案:

答案 0 :(得分:0)

我认为你问题的“理想”答案是在表格上有一个插入触发器,然后让这个触发器创建一个视图。但是,为了使用用户生成的名称创建视图,您需要使用动态SQL。 And this is not support in MySQL

另一种解决方案是返回表的用户定义函数。但这也不是MySQL的一部分。

所以,如果你真的想这样做,那么我可以想到两个选择。第一种是在存储过程中将所有插入包装到表中。然后,存储过程可以调用动态SQL来创建视图。

另一种是每天(每小时?分钟?)的工作,在表格中查找新记录。找到新组合后,再创建视图。