代码改变世界

sql存储过程通过ID删除两表中的数据。

2013-10-31 17:44  无抿屎的牛牛  阅读(278)  评论(0编辑  收藏  举报
CREATE OR REPLACE PROCEDURE del_p    --建立名为del_p 的过程
IS
   CURSOR get_abid                   --简历名为get_abid的cursor 用来存放a表的id和b表的id.
   IS
      SELECT a.ID aid, b.ID bid          
        FROM userinfo a INNER JOIN users b ON a.username = b.username; --将a表的id命名为aid,b表的id命名为bid
BEGIN
   FOR rec_abid IN get_abid           --循环这个cursor get_abid 该结果可能不是一条所以要循环.
   LOOP
      DELETE     userinfo 
            WHERE ID = rec_abid.aid;  --删除userinfo 表中的id为aid的数据.

      DELETE      users 
            WHERE ID = rec_abid.bid;  --删除users 表中的id为bid的数据.
   END LOOP;
END;