触发重复属性sql

时间:2014-10-20 18:24:50

标签: mysql sql triggers

我有一个带有属性服务员的表,偶数。我希望触发器代码检查特定事件是否已经插入三次,如果是,则每次在具有相同eventid值的表中插入新插入时抛出异常。

我使用以下代码:

CREATE TRIGGER 'timeslotattendantcheck' 
BEFORE INSERT ON 'attendants'  
FOR EACH ROW
DECLARE @v_dup int;  
BEGIN
    SELECT  @v_dup=COUNT(*)  from attendants where attendant=:NEW.attendant;  
    if v_dup > 3 then   
        Raise_Application_Error (-20100, 'Too many attendants for one time slot. The insert is cancelled.');
    end if;
end;

1 个答案:

答案 0 :(得分:0)

当你定义一个触发器(或一个过程)时,你需要更改默认的查询分隔符,然后你必须将它恢复到;(那些引号......它们必须是反向标记`)

另外,不要使用用户变量(@变量);使用局部变量(除非您需要使用过程外的值)。并在<{1}}块中声明变量

更正的代码:

begin...end

有用的链接: