mysql查询错误中的触发器
我正在为mysql创建一个触发器,当用户注册时,旧值将替换为+1,作为显示新用户注册的admin新值mysql查询错误中的触发器,mysql,triggers,Mysql,Triggers,我正在为mysql创建一个触发器,当用户注册时,旧值将替换为+1,作为显示新用户注册的admin新值 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-notific
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-插入触发器时没有旧行
查询中可能出现的错误是什么?
OLD
和NEW
指的是触发器所在的表:userss
NOT管理员通知
您可以尝试以下方法:
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;
通过一些搜索,我能够做到这一点,所以我自己也在回答这个问题 mysource的链接与示例中的链接相同,我能够解决特定的
更新test4 SET b4=b4+1,其中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 ;
我认为错误信息的措辞相当清楚。您处于INSERT
触发器中。这意味着您正在处理一行,直到现在,该行还不存在于表中。因此,您希望OLD
为您提供什么访问权限?除非你能解释,否则回答将是一个猜测游戏,因为似乎有一个基本的错误。当我在触发器#1064中用你的sql查询替换我的sql查询时,仍然显示错误-你的sql语法有错误;查看与您的MySQL服务器版本对应的手册,了解在“更新”
admin notification`SETnotification count
=(选择“在第4行”这是整个触发器,我只使用了一个。我的意思是在查询中显示更新后的触发器…给你这个错误的触发器。你可能是把它复杂化了。我希望模式是UPDATE table SET column=column+1,其中condition
@AndriyM goddammit你说得对:|我有多瞎…th你应该把答案贴出来