Mysql触发器的问题

leeviny 2018-07-05 11:42:31
大神们,请往下看:
这是第一张表:

CREATE TABLE `ARTICLE_GROUP` (

`ARTICLE_GROUP_ID` int NOT NULL AUTO_INCREMENT COMMENT '文章列表索引',

`ARTICLE_TITLE` varchar(50) NOT NULL COMMENT '文章標題',

`ARTICLE_OUTLINE` varchar(200) NOT NULL COMMENT '文章內容概覽',

`ARTICLE_DATE` datetime NOT NULL COMMENT '文章發表日期',

`ARTICLE_PRESE_COUNT` int(10) NOT NULL DEFAULT 0 COMMENT '文章被點讚的次數',

`ARTICLE_PWD` varchar(16) NULL COMMENT '文章的密碼',

`USERINFO_ID` int(10) NOT NULL DEFAULT 0 COMMENT '用戶表索引',

`ARTICLE_CLASS_ID` int(3) NOT NULL COMMENT '文章類型表索引',

PRIMARY KEY (`ARTICLE_GROUP_ID`)

);


这是第二章表:

CREATE TABLE `EVERYDAY_ARTICLE_COUNT` (

`EVERYDAY_ARTICLE_ID` int NOT NULL AUTO_INCREMENT COMMENT '每日發表文章總量表索引',

`EVERYDAY_ARTICLE_DATE` date NULL COMMENT '日期統計',

`EVERYDAY_ARTICLE_COUNT` int NULL DEFAULT 0 COMMENT '每日發表文章的總量',

PRIMARY KEY (`EVERYDAY_ARTICLE_ID`)

);


我想实现的是,当 “ARTICLE_GROUP”插入一条新数据的时候,
在 “EVERYDAY_ARTICLE_COUNT” 表中查询,今天是否发表过文章,假如发表过,则“EVERYDAY_ARTICLE_COUNT”自加1,否则
EVERYDAY_ARTICLE_COUNT=1;
我是用了触发器(第一次是用,不懂怎么用):


BEGIN
SET @COUNT = IFNULL((SELECT EVERYDAY_ARTICLE_COUNT FROM EVERYDAY_ARTICLE_COUNT WHERE EVERYDAY_ARTICLE_DATE=DATE_FORMAT(NOW(),'%Y-%m-%d')),0);
IF @COUNT=0 THEN INSERT INTO EVERYDAY_ARTICLE_COUNT VALUES(0,DATE_FORMAT(NOW(),'%Y-%m-%d'),1);
ELSE UPDATE EVERYDAY_ARTICLE_COUNT SET EVERYDAY_ARTICLE_COUNT=EVERYDAY_ARTICLE_COUNT+1 WHERE EVERYDAY_ARTICLE_DATE=DATE_FORMAT(NOW(),'%Y-%m-%d');
END IF;
END


可是不能达到我的预期目的,总是报 “Duplicate entry '1' for key 'PRIMARY' ”,我把 “EVERYDAY_ARTICLE_COUNT ”表的主键取消了也不行。。。只有这50分了,谢谢大神们。
...全文
206 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧