【发布时间】:2013-02-01 09:42:39
【问题描述】:
我有一个包含 4 个表的数据库
-电池 -细胞 -所有者
每个电池有多个电池和一个所有者。
单元格表将包含大量条目。 我想要一个触发器,为每个显示电池信息及其电池信息的新电池创建视图。
我有一个运行良好的 postgre sql 触发器(感谢 stackoverflow :)):
BEGIN
EXECUTE $$CREATE OR REPLACE VIEW battery_vue
AS
SELECT * FROM cells WHERE battery_serial = $$ || NEW.battery_serial;
RETURN NEW;
END;
但我无法将其转置到 SQL Server,而且我完全不知道该怎么做。
这是我的数据库的简单图表:
所以最后对于每个新电池,我都需要查看它及其电池。
Ps : 对不起,如果我的英语不流利:/
【问题讨论】:
-
只是为了让我了解这里的工作流程...添加新电池记录时,您想要触发触发器并创建该新电池及其相关电池信息的物理视图吗?你为什么要那样做?您当然可以在单元格记录上存储 DATETIME 标记并使用日期范围搜索返回所有数据??
-
我想要独立查看每个电池,因为将有数千个电池,每个电池包含 10 到 1000 个电池,我需要快速访问数据以显示用户的统计数据加上:所有视图必须实时更新,因为单元格数据将每分钟更新一次
-
查询视图比直接查询表有什么优势?如果我理解正确,您希望能够使用
SELECT * FROM dbo.cells_1234而不是SELECT * FROM dbo.cells WHERE battery_serial = 1234。但是第二个查询通常会更简单,因为battery_serial值是作为参数传递的,您不必动态构造视图名称。电池的数量并不重要,更多的是表格和索引设计的问题。但是也许你可以展示你的 PostgreSQL 查询是什么样的,以更好地说明你的需求?
标签: sql-server view database-trigger