大神們,請往下看:
這是第一張表:
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分了,謝謝大神們。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/85504.html
標籤:MySQL
