【发布时间】:2016-02-22 14:37:35
【问题描述】:
我在 MySQL 上运行了以下触发器:
CREATE DEFINER=`root`@`%` TRIGGER `before_insert` BEFORE INSERT ON `table` FOR EACH ROW SET
new.AVG_COLUMN1 = (SELECT avg(COLUMN1) FROM (SELECT COLUMN1 from table ORDER BY DateTimeCol DESC LIMIT 20) as COLUMN1_A),
new.AVG_COLUMN2 = (SELECT avg(COLUMN2) FROM (SELECT COLUMN2 from table ORDER BY DateTimeCol DESC LIMIT 20) as COLUMN2_A),
new.AVG_COLUMN3 = (SELECT avg(COLUMN3) FROM (SELECT COLUMN3 from table ORDER BY DateTimeCol DESC LIMIT 20) as COLUMN3_A)
基本上,我的目标是在插入新行时根据 COLUMNx 中的最后 20 个条目在 AVG_COLUMNx 列中设置一个自动默认值。使用上述触发器在 MySQL 中运行良好。
我正在将我的项目从 MS 迁移到 Sql Server Express,我正在尝试在那里做同样的事情。有没有人对我如何做到这一点有任何好的指示?使用触发器、计算列等?
感谢您的任何意见!
【问题讨论】:
-
就像我说的,我正在使用的触发器是在 MySQL 上,但我正在寻找一个 SQL Server 等效项(我计划将我的项目从 MySQL 迁移到 SQL Server Express)。
-
是的,我仔细阅读后注意到了。我在帖子中添加了
MySQL和database-migration标签以澄清
标签: mysql sql sql-server average database-migration