Home > database >  Mysql trigger problems
Mysql trigger problems

Time:09-27

The great god, please look down:
This is the first one table:
 
The CREATE TABLE ` ARTICLE_GROUP ` (

` ARTICLE_GROUP_ID ` int the NOT NULL AUTO_INCREMENT COMMENT 'article list index,

` ARTICLE_TITLE ` varchar (50), NOT NULL COMMENT 'headline'

` ARTICLE_OUTLINE ` varchar (200) NOT NULL COMMENT 'content overview,

` ARTICLE_DATE ` datetime NOT NULL COMMENT 'publication date,

` ARTICLE_PRESE_COUNT ` int (10) NOT NULL DEFAULT 0 COMMENT 'the number of articles by thumb up,

` ARTICLE_PWD ` varchar (16) NULL COMMENT 'password' article,

` USERINFO_ID ` int (10) NOT NULL DEFAULT 0 COMMENT 'user table index,

` ARTICLE_CLASS_ID ` int (3) the NOT NULL COMMENT 'article type table index,

PRIMARY KEY (` ARTICLE_GROUP_ID `)

);


This is the second chapter:
 
The CREATE TABLE ` EVERYDAY_ARTICLE_COUNT ` (

` EVERYDAY_ARTICLE_ID ` int the NOT NULL AUTO_INCREMENT COMMENT 'total daily published an article table indexes,

` EVERYDAY_ARTICLE_DATE ` date NULL COMMENT 'date statistics,

` EVERYDAY_ARTICLE_COUNT ` int NULL DEFAULT 0 COMMENT 'the amount of daily published an article,

PRIMARY KEY (` EVERYDAY_ARTICLE_ID `)

);


I want to achieve is, when "ARTICLE_GROUP" insert a new data,
In the "EVERYDAY_ARTICLE_COUNT" table in the query, today whether published articles, if published, "EVERYDAY_ARTICLE_COUNT since + 1", otherwise
EVERYDAY_ARTICLE_COUNT=1;
I am using the trigger (is used for the first time, don't know how to use) :

 
The 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);
+ 1 WHERE ELSE UPDATE EVERYDAY_ARTICLE_COUNT SET EVERYDAY_ARTICLE_COUNT=EVERYDAY_ARTICLE_COUNT EVERYDAY_ARTICLE_DATE=DATE_FORMAT (NOW (), 'Y - m - % d % %');
END IF;
END


But I can't achieve the desired purpose, always quote "Duplicate entry '1' for key 'PRIMARY'", I called off the table's PRIMARY key "EVERYDAY_ARTICLE_COUNT" also not line,,, this is the only 50 points, thank the great god,
  • Related