CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  SQL Anywhere Studio

触发器简单问题

楼主zhou1977(短笛)2002-06-11 15:38:39 在 其他数据库开发 / SQL Anywhere Studio 提问

我想做一个简单的触发器,delete一个表,如果所有记录被删空以后就新加一条记录,怎么写都不对,能通过,但是一执行delete就出错,大虾教教我  
  DROP   TABLE   testtrigger;  
  CREATE   TABLE   testtrigger   (  
  zm_id INTEGER,  
  zm   VARCHAR2(40)   NOT   NULL  
  );  
  insert   into   testtrigger   (zm_id,zm)   values('1','test1');  
   
  create   or   replace   trigger   my_tri   before   delete   on   testtrigger   for   each   row  
  declare  
                    v_count   int;  
  begin  
        SELECT   count(*)   into   v_count   FROM   testtrigger;  
                    if   v_count   =   0   then  
                              insert   into   testtrigger(zm_id,zm)   values('2','test2');  
                      end   if;          
  end; 问题点数:50、回复次数:6Top

1 楼mycode(不写代码)回复于 2002-06-11 15:50:35 得分 0

这样做,采用触发器是不行的。Top

2 楼bzszp(SongZip)回复于 2002-06-11 16:14:17 得分 0

可以对表进行随时监测,监测为空时进行插入.Top

3 楼bzszp(SongZip)回复于 2002-06-11 16:16:19 得分 0

可以对表进行随时监测,监测为空时进行插入.Top

4 楼ATCG(novel gene)回复于 2002-06-11 16:19:06 得分 0

create   or   replace   trigger   TEST  
  去试试吧,兄弟  
  after   delete   on   TABLE  
  DECLARE  
  V_TEMP   NUMBER;  
  begin  
      SELECT   ID   INTO   V_TEMP   FROM   TABLE   WHERE   ROWNUM<=1;  
      exception  
            when   NO_DATA_found   then  
              INSERT   INTO   TABLE   VALUES(88);  
  end   TEST;  
  /Top

5 楼ATCG(novel gene)回复于 2002-06-11 16:22:10 得分 0

sorry   应该是这样  
   
  create   or   replace   trigger   TEST  
  after   delete   on   TABLE  
  DECLARE  
  V_TEMP   NUMBER;  
  begin  
      SELECT   count(*)   INTO   V_TEMP   FROM   TABLE;  
      exception  
            when   NO_DATA_found   then  
              INSERT   INTO   TABLE   VALUES(88);  
  end   TEST;  
  /  
  Top

6 楼ATCG(novel gene)回复于 2002-06-11 16:23:49 得分 50

SORRY   再次更改,有点急!  
   
  create   or   replace   trigger   TEST  
  after   delete   on   TABLE  
  DECLARE  
  V_TEMP   NUMBER;  
  begin  
      SELECT   count(*)   INTO   V_TEMP   FROM   TABLE;  
      if   v_temp=0   then  
              INSERT   INTO   TABLE   VALUES(88);  
      end   if;  
  end   TEST;  
  /  
  Top

7 楼zhou1977(短笛)回复于 2002-06-11 16:37:25 得分 0

果然如此,谢谢大家Top

相关问题

  • 简单的触发器
  • 求一简单触发器
  • update简单触发器
  • 简单触发器问题
  • 触发器!(简单问题)
  • 编写简单触发器
  • 关于触发器的简单问题
  • 一个触发器的设计,简单
  • ORACLE触发器的简单问题
  • 最简单的触发器问题

关键词

  • testtrigger
  • zm
  • 表
  • delete
  • count
  • create
  • test
  • table

得分解答快速导航

  • 帖主:zhou1977
  • ATCG

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo