none
关于一个触发器的问题 RRS feed

  • 问题

  • A表数据有
    订单号、商品名称
    B表数据有
    订单号、运费
    我想在B表里创建一个触发器实现
    如果A表的订单号=B表的订单号
    那么就将满足上面条件的订单号、商品名称、运费全部插入进C表
    请问该操作的触发器该如何写
    2010年3月26日 4:44

答案

  • 触发器应该很简单,关键是触发的条件以及互斥处理。

    比如在插入到B的时候触发,那么来一个 insert into C select B.定单号, A.商品名称, B.运费 from B inner join A on A.定单号 = B.定单号; (join的方式根据你的需求来)

    但如果先有了B再有A,那么无法触发,则少了一条数据。另外,还要考虑删除更新等操作,实际是比较麻烦的,各种触发器得写全了。

    如果你的C表没有特殊用处,那还是建立视图比较方便。


    霸王
    2010年3月26日 8:28
  • 如果触发器在 B 中创建,则先把 A 表中符合条件的记录插到 C 表去,然后再在 B 表中创建一个 INSERT 以及 UPDATE 触发器就可以了。
    Mark Zhou
    2010年3月26日 8:40

全部回复

  • 触发器应该很简单,关键是触发的条件以及互斥处理。

    比如在插入到B的时候触发,那么来一个 insert into C select B.定单号, A.商品名称, B.运费 from B inner join A on A.定单号 = B.定单号; (join的方式根据你的需求来)

    但如果先有了B再有A,那么无法触发,则少了一条数据。另外,还要考虑删除更新等操作,实际是比较麻烦的,各种触发器得写全了。

    如果你的C表没有特殊用处,那还是建立视图比较方便。


    霸王
    2010年3月26日 8:28
  • 如果触发器在 B 中创建,则先把 A 表中符合条件的记录插到 C 表去,然后再在 B 表中创建一个 INSERT 以及 UPDATE 触发器就可以了。
    Mark Zhou
    2010年3月26日 8:40