我现在有一个表messageReceived我想在这个表上做删除并且删除的同时把这条删除的数据添加到令一张表messageGarbage表中  那位大虾有写好的代码  帮帮我!!!

解决方案 »

  1.   

    是基于什么环境的,JDBC。JPA还是其它?
      

  2.   

    触发器,数据库触发器,具体可以google哈
      

  3.   

    建个触发器就可以了。create or replace trigger tr_aaa
      after delete on messageReceived  
      for each row
    declare
      
    begin
      INSERT INTO messageGarbage(id, name) VALUES (:old.id, :old.name);
    end tr_aaa;
      

  4.   

    请问  我用的是SSH框架写的  就是一个留言   一条留言不想要了  存到垃圾留言里面
      

  5.   

    要是不会用,就是在DAO操作的时候,先取出来包装好成插入时候的Hibernate的对象,自己在后台操作中插入就好了吧,这样你熟悉SSH,应该就很简单了呀!
      

  6.   

    create or replace trigger insert_dc_sell
      after delete on ivr_call_client
      for each row
    declare
    begin
    insert into dc_sell(ID,phone,result,selltime,operation) 
    values(:NEW.ID,:NEW.calltel,:NEW.state,:NEW.registerdate,:NEW.operation);
    end insert_dc_sell;就是这个嘛,ivr_call_client这个是你要删除的表,
    dc_sell(ID,phone,result,argo,selltime,operation)这个是要插入的垃圾留言表,括号里是字段;
    :NEW.calltel等,这些是你之前删除的留言的字段;这样就ok啦,你删除留言表的时候就会自动往垃圾表里查数据了,你可以删一个试试的
      

  7.   

    after delete on ivr_call_client
    错了,这个应该是
    before delete on ivr_call_client因为after 和:old对照;  before 应该是:NEW
      

  8.   

    messageReceived表中删除的数据messageGarbage表接收
    messageReceived表中字段(id,name,email,title,time,content)
    messageGarbage表中字段一样  麻烦帮写下
      

  9.   

    create or replace trigger insert_dc_sell
      before delete on messageReceived
      for each row
    declare
    begin
    insert into messageGarbage(id,name,email,title,time,content)  
    values(:NEW.id,:NEW.name,:NEW.email,:NEW.title,:NEW.time,:NEW.content);
    end insert_dc_sell;
      

  10.   

    有个简单的办法就是给数据库加一个状态标记status,删除的时候并不从数据库删除数据,而是把status字段的值修改一下。
      

  11.   

    这个方法很好!
    也可以在你删除的action里面的DELETE方法后添加个insert方法,就是insert到另外一张表格里面
    这个方法挺实用的,不过建议楼主还是用001的方法
      

  12.   

    很明显这个问题要用触发器trigger来处理,可在pl/sql块里面来实现。参考代码
    create or replace trigger del_ins
    before delete on messageReceived
    for each row
    declare
    begin
    insert into messageGarbage(id,name,email,title,time,content)   
    values(:OLD.id,:OLD.name,:OLD.email,:OLD.title,:OLD.time,:OLD.content);
    end;
    11楼和15楼的兄弟好像把old写成new了。没记错的话这里应该用old。