0 0

请教怎么写这个触发器,谢谢!5

需求描述:有以下两个表
TableA(
id,
type,--类型
plandate--计划时间,varchar(10)
)

TableB(
Fid,--外键,和TableA中的ID关联
realdate--实际日期,varchar(10)
)

TableA的记录会和TableB中的记录一一对应。

当TableB中的字段realdate发生改变时(insert的时候不算),判断realdate的值是否小于TableA中plandate的的值,如果小于,执行触发器,将TableA中的type赋值“10”;如果不小于,则不执行触发器。
请教一下如何写这个语句,刚学习触发器,希望能回复完整的sql,谢谢!

问题补充:自己学着写了一个,测试没发现什么问题

--创建触发器
Create  Trigger t_TableB_bykmd
      On TableB
      for Update
    As
      if Update(realdate)
      begin
           
        if(select COUNT(*) from TableB a, TableA b,inserted c
where a.realdate>b.plandate  and a.fid=b.id
and a.fid=c.fid)=1
begin
  Update br  Set br.type='10'
          From TableA br , Inserted ins
          Where br.id=ins.fid
end
  end 
2014年6月28日 18:57

2个答案 按时间排序 按投票排序

0 0

create or replace trigger trigger_temp after update
on TableB
as
begin
DECLARE @realdate_old date,@realdate _new date
   SELECT @realdate_old=realdate  from deleted ----获取修改前的
   SELECT @realdate_new =realdate  FROM inserted
if(:@realdate_new< @realdate _old) then
    begin
    update TableA a set a.type = 10 where a.id = @realdate_new;
    end;
end if;
end trigger_temp;


sqlServer 应该不支持new: old:吧 楼主试一下吧

2014年6月30日 10:30
0 0

create or replace trigger trigger_temp after update
on TableB
FOR EACH ROW
begin
if(:new.realdate < old.realdate ) then
    begin
    update TableA a set a.type = 10 where a.id = :new.Fid;
    end;
end if;
end trigger_temp;

2014年6月29日 19:24

相关推荐

    mysql触发器详解!!!

    一个表中的多个同类触发器(INSERT、UPDATE 或 DELETE)允许采取多个不同的对策以响应同一个修改语句。 CREATE 语句,如:CREATE DATABASE、CREATE TABLE、CREATE INDEX 等。 ALTER 语句,如:ALTER DATABASE、ALTER...

    mysql触发器之创建多个触发器操作实例分析

    本文实例讲述了mysql触发器之创建多个触发器操作。分享给大家供大家参考,具体如下: 这次记录的内容mysql 版本必须得是5.7.2+的哈,之前的会不好使的。废话不多说,咱们开始正文哈。 在mysql 5.7.2+版本之前,我们...

    学了这么久MySQL竟然还不知道视图和触发器!!!

    这个例子定义了一个名为`autoSaveTime`的触发器,每当向`bank`表插入新行时,它会在`banklog`表中记录当前时间。 2. **触发器类型**:触发器可以是`BEFORE`或`AFTER`类型,分别在DML操作执行之前或之后触发。 3. ...

    RS触发器与SR触发器区别有哪些

    RS触发器的一个显著特性是,当S和R输入同时为高电平“1”时,触发器将进入不确定的状态,一般认为这是一个不推荐的操作,因为它会导致输出不稳定。 SR触发器的命名规则与RS触发器相反,但功能上其实与RS触发器一致...

    Multisim仿真实验三 触发器_触发器_multisimd触发器_serviceq66_T触发器仿真_double34t_源

    通过这个实验,学习者不仅可以深入理解触发器的工作原理,还能掌握如何在Multisim环境下设计和分析数字电路,这对于提高电路设计和故障排查能力是非常有益的。同时,它也强调了理论知识与实践操作相结合的重要性,是...

    触发器触发器触发器触发器

    在"触发器9.18触发器9.18触发器9.18触发器触发器9.18触发器9.18触发器9.18触发器"这个描述中,可能是在强调某个特定的事件或者场景,例如9月18日的数据库维护或者某个特定的触发器测试。 在大多数关系型数据库系统...

    触发器的一个例子触发器的一个例子

    这个标题虽然重复了两次“触发器的一个例子”,但很明显是想要强调这是一个具体的触发器应用实例。通过分析下面给出的代码片段,我们可以理解到该触发器是如何工作的。 ### 描述分析:“触发器拉。//一个例子么。/...

    创建触发器

    这个触发器将在`AddTable`上的任何`UPDATE`操作完成后执行,打印出一条消息。 2. 修改触发器: 如果需要修改触发器的行为,可以使用`ALTER TRIGGER`语句,如下所示: ```sql ALTER TRIGGER mytrigger ON Add...

    在DB2中创建第一个触发器

    在DB2中创建触发器是数据库管理中的一个重要环节,它允许在特定的数据库操作(如INSERT、UPDATE或DELETE)执行之前或之后自动运行预定义的SQL语句。本文将详细介绍如何在DB2数据库中创建一个触发器,以及触发器的...

    JK触发器及D触发器构成计数型触发器

    基于Multisim14,绘制的JK触发器及D触发器构成计数型触发器仿真.

    触发器创建与管理实验 .docx

    这个触发器将在插入数据之前执行,并将操作信息和时间记录到operate表中。 四、实验步骤 1. 创建 BEFORE INSERT、AFTER UPDATE 和 AFTER DELETE 三个触发器,名称分别为Tproduct_bf_insert、Tproduct_af_update 和...

    数据库的触发器实验报告书

    这个触发器使用了`inserted`表,它是SQL Server为存储插入或更新操作的新记录而创建的一个逻辑表。 第二个触发器`CP_UPDATE`在CP表的`cpbh`字段更新时,同步更新XSCP表中的对应记录。这里使用了`inserted`和`...

    jk触发器波形图怎么画?主从jk触发器波形图

    在主从JK触发器中,信号的传递需要经过两个触发器,因此会在两个时钟周期之间产生一个延迟,这可以避免由于时钟信号的不确定状态带来的竞争-冒险问题。 首先,了解JK触发器的基本概念和工作原理是必要的。JK触发器...

    触发器实验报告.doc

    RS触发器由两个与非门交叉耦合构成,提供置"0"(S=0)、置"1"(R=0)和保持(S=R=1)功能。表5-8-1展示了其功能。要注意的是,当S和R同时为0时,触发器状态不确定,需要避免这种情况。此外,RS触发器也可以用两个或...

    JK触发器 设计一个七进制计数器

    JK触发器是数字电路中的一种基本时序逻辑元件,它具有两种稳定状态,可以用来存储一位二进制信息。在本场景中,我们将利用JK触发器设计一...在JK触发器的文件中,可能包含了这个设计的具体电路图或代码,供学习和参考。

    RS触发器和SR触发器的区别

    RS触发器(Reset-Set Flip-Flop)和SR触发器(Set-Reset Flip-Flop)是数字电子学中非常基础的逻辑电路组件,它们属于触发器的一种类型。...理解这两类触发器的区别对于设计和理解数字电路至关重要。

    触发器分析应用实验报告

    通过这个实验,我们可以深入理解触发器的工作原理和它们在数字系统中的应用。VHDL描述有助于我们抽象电路逻辑并进行仿真验证。波形仿真结果提供了直观的视觉反馈,帮助我们确认触发器行为是否符合预期。此外,实验还...

    vivado下基于VHDL的d触发器

    在提供的文件名“dff”中,可能包含了这个D触发器设计的VHDL源代码、仿真波形图、综合报告或配置文件。在进一步分析和学习这个设计时,应检查代码的正确性,理解其工作原理,并通过Vivado的仿真功能验证其行为是否...

    oracle_触发器的种类和触发事件

    触发器可以分为四种类型:DML触发器、DDL触发器、替代触发器和数据库事件触发器。 DML触发器是定义在表上的触发器,由DML事件引发。DML事件包括INSERT、UPDATE和DELETE三种。DML触发器可以在 BEFORE 或 AFTER 触发...

Global site tag (gtag.js) - Google Analytics