两个触发器,一个程序

时间:2015-07-06 12:38:43

标签: sql oracle plsql

只发送一封邮件而不是两封邮件,无法解决问题。

我有两个包含报告状态的表和有关日志的信息。 在第一个表中我输入了类似的触发条件:

            string connStr = "Enter Your connection String Here";
            string SQL = "Enter Your SELECT Here";
            SqlDataAdapter adapter = new SqlDataAdapter(SQL, connStr);

            DataTable ds = new DataSet();
            adapter.Fill(ds);

            ds.WriteXml("FileName", XmlWriteMode.WriteSchema);

在第二个表格中,我创建了一个类似的触发器create or replace TRIGGER test1 conditions begin send email end.

即使test2触发器和test1触发器中的条件都存在于数据库中,我的目标也不是发送2封电子邮件,而只发送1封。

所以我看这样的事情:Execute procedure in a trigger

但是,如果有两个触发器运行,我们不知道如何检查程序。

还有其他方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

假设您有权创建额外的表格。假设TRIGGER test1仅在(条件=)星期一运行...并且TRIGGER test2仅在星期二(条件=)运行。当test1运行时,它不会立即发送电子邮件,但它会在 - 示例 - customer_A的额外表中插入一条记录。当test2运行时,它会检查customer_A是否已收到邮件。如果是,则不会发送新邮件。如果不是......那么将发送新邮件。这样,customer_A就不会在星期一的星期一收到邮件。 Customer_A是表中的唯一标识符。在一段时间之后,应该清理表格,或者引入一个时间机制来跟踪最近发送的邮件。