【发布时间】:2017-10-28 05:02:53
【问题描述】:
这是我在投标表中输入数据的代码,其中项目 ID 作为其属性。有一个表项目也有项目 ID 作为它的属性。我已经做了这个触发器来输入数据,只有当项目没有售出时。
CREATE OR REPLACE TRIGGER TIG FOR BIDS FOR EACH ROW
DECLARE
N_CNT NUMBER (1);
BEGIN
SELECT COUNT(*)
INTO N_CNT
FROM ITEM
WHERE ITEM_ID = :NEW.ITEM_ID
AND ITEM.STATUS='SOLD';
IF N_CNT=1 THEN
DBMS_OUTPUT.PUT_LINE('ALREADY SOLD');
END IF;
END;
它给出了错误
Pl/SQL :line 4:SQL 语句被忽略。即开始
【问题讨论】:
-
FOR BIDS应该类似于before insert on bids部分在触发器声明中。 -
我试过但没有效果
-
您尝试过什么,“没有效果”是什么意思?如果您收到任何错误,请显示您尝试过的代码和错误
-
在插入每行投标前创建或替换触发 TIG 声明 N_CNT 编号 (1); BEGIN SELECT COUNT(*) INTO N_CNT FROM ITEM WHERE ITEM_ID = :NEW.ITEM_ID AND ITEM.STATUS='SOLD';如果 N_CNT=1 那么 DBMS_OUTPUT.PUT_LINE('ALREADY SOLD');万一;结束;
-
你说没有效果是什么意思?当我尝试时,它编译得很好。
标签: oracle plsql database-trigger