【问题标题】:MySQL : Auto generate view depending on table contentMySQL:根据表格内容自动生成视图
【发布时间】:2013-04-20 19:41:15
【问题描述】:

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

假设我的表有 2 个字段:

  • 类别
  • 子类别

现在假设我的桌子上有许多径向 Rasistor。它们都有类别:电阻器,子类别:径向。 我想执行这样的查询:

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

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

【问题讨论】:

  • 为什么要创建这些views ?
  • 因为我的 PCB 软件连接到该数据库并识别表格。视图是构建此系统的正确方法。
  • @user2302957 。 . .您真的不能为此使用简单的where 子句吗?
  • 不,我不能。我的软件查找表,它不允许我编辑自己的 SQL 查询。

标签: mysql view triggers


【解决方案1】:

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

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

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

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

【讨论】:

  • 这是很多有用的信息。关于您提出的建议,我认为最好的方法是重新创建视图的日常工作。谢谢
猜你喜欢
  • 2017-08-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-10
  • 1970-01-01
  • 1970-01-01
  • 2017-03-14
  • 2019-04-25
  • 1970-01-01
相关资源
最近更新 更多