0

我正在为 mysql 创建一个触发器,当用户注册时,旧值将替换为 +1 作为管理员的新值,以显示新用户注册。

CREATE TRIGGER `admin_notification_insert`
AFTER INSER ON `userss`
FOR EACH ROW BEGIN
UPDATE `admin-notification` 
SET  NEW.`notification-count` =  (OLD.`notification-count`+1) 
WHERE  `admin-notification`.`notification-id` =1;
END;

如前所述,我在代码中有错误#1363 - There is no OLD row in on INSERT trigger

查询中可能出现的错误是什么?

4

2 回答 2

1

通过一些搜索,我能够做到,所以我自己也回答了这个问题......................

mysource 的链接是 dev.mysql示例那里我能够解决特别UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1; 帮助我很多。下面是我的解决方案的代码 -

delimiter |
CREATE TRIGGER `admin_notification_insert`
AFTER INSERT ON `users`
FOR EACH ROW BEGIN
UPDATE `admin-notification` 
SET  `admin-notification`.`notification-count` = `admin-notification`.`notification-count`+ 1 
WHERE  `admin-notification`.`notification-id` = '1';
END;
|
delimiter ;
于 2013-06-20T12:24:28.893 回答
0

OLDNEW引用触发器所在的表:userss NOTadmin-notification

你可以试试这个:

UPDATE `admin-notification` 
    SET  `notification-count` =  (
        SELECT
            new_nc
        FROM (
            SELECT
                `notification-count`+1 as new_nc
            FROM
                `admin-notification` 
            WHERE
                `admin-notification`.`notification-id` =1
        ) as tmp
    ) 
WHERE  
    `admin-notification`.`notification-id` =1;
于 2013-06-20T09:30:42.603 回答