Trigger - INSERT INTO bei Bedarf
Trigger - INSERT INTO bei Bedarf
am 02.01.2007 19:47:30 von Thomas Zangl
Hi!
Ich hab folgenden Trigger der mir einen Fehler wirft:
DROP TRIGGER t_update_on_insert //
CREATE TRIGGER t_update_on_insert BEFORE INSERT ON result
FOR EACH ROW
BEGIN
SELECT COUNT(Date) FROM t_statistics WHERE Date = DATE_FORMAT(
FROM_UNIXTIME( NEW.received_time ) , '%d. %M %Y' );
IF Date = 0 THEN
INSERT INTO `t_statistics` ( `Date` , `wu_success` , `cpu_hour` ,
`wu_other` ) VALUES ( DATE_FORMAT( FROM_UNIXTIME( NEW.received_time ) ,
'%d. %M %Y' ), 0, 0, 0);
UPDATE t_statistics SET cpu_hour=cpu_hour + NEW.cpu_time WHERE Date =
DATE_FORMAT( FROM_UNIXTIME( NEW.received_time ) , '%d. %M %Y' ) ;
IF NEW.server_state = 5 AND NEW.outcome=1 THEN
UPDATE t_statistics SET wu_success = wu_success +1 WHERE Date =
DATE_FORMAT( FROM_UNIXTIME( NEW.received_time ) , '%d. %M %Y' ) ;
ELSEIF NEW.server_state = 5 THEN
UPDATE t_statistics SET wu_other = wu_other +1 WHERE Date = DATE_FORMAT(
FROM_UNIXTIME( NEW.received_time ) , '%d. %M %Y' ) ;
END IF;
END ;
Im Prinzip will ich folgendes machen:
Wenn in "t_statistics" noch keine Zeile mit dem Datum (z.B. 31. August
2006) existiert, dann soll der Eintrag mit 0-Werten angelegt werden.
Danach sollen in diesem Eintrag die Werte aktualisiert werden.
Mein Problem ist nun das Anlegen dieser Zeile bei nicht vorhanden sein.
Quasi ein "INSERT INTO IF ROW DOES NOT EXIST". Any ideas?
TIA,
--
------------------------------------------------------------ ----
,yours Thomas Zangl - thomas@tzis.net - http://www.tzis.net/ -
- Freelancer - IT Consulting & Software Development -
Use Y.A.M.C! now! Get it at http://www.borg-kindberg.ac.at/yamc/
Re: Trigger - INSERT INTO bei Bedarf
am 02.01.2007 20:15:04 von Claus Reibenstein
Thomas Zangl schrieb:
> Ich hab folgenden Trigger der mir einen Fehler wirft:
*seufz* Was genau hindert Dich daran, uns diesen Fehler mitzuteilen?
> Quasi ein "INSERT INTO IF ROW DOES NOT EXIST".
Du suchst INSERT IGNORE.
Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /
Re: Trigger - INSERT INTO bei Bedarf
am 02.01.2007 20:16:22 von Thomas Zangl
Claus Reibenstein wrote:
> Thomas Zangl schrieb:
>
>> Ich hab folgenden Trigger der mir einen Fehler wirft:
Meine Zerstreutheit :-)
CREATE TRIGGER t_update_on_insert BEFORE INSERT ON result
FOR EACH
ROW
BEGIN
SELECT COUNT( Date )
FROM t_statistics
WHERE Date = DATE_FORMAT( FROM_UNIXTIME( NEW.received_time ) , '%d. %M
%Y' ) ;
IF Date =0 THEN INSERT INTO `t_statistics` ( `Date` , `wu_success` ,
`cpu_hour` , `wu_other` )
VALUES (
DATE_FORMAT( FROM_UNIXTIME( NEW.received_time ) , '%d. %M %Y' ) , 0, 0, 0
);
UPDATE t_statistics SET cpu_hour = cpu_hour + NEW.cpu_time WHERE Date =
DATE_FORMAT( FROM_UNIXTIME( NEW.received_time ) , '%d. %M %Y' ) ;
IF NEW.server_state =5 AND NEW.outcome =1 THEN UPDATE t_statistics SET
wu_success = wu_success +1 WHERE Date = DATE_FORMAT( FROM_UNIXTIME(
NEW.received_time ) , '%d. %M %Y' ) ;
ELSEIF NEW.server_state =5 THEN UPDATE t_statistics SET wu_other =
wu_other +1 WHERE Date = DATE_FORMAT( FROM_UNIXTIME( NEW.received_time )
, '%d. %M %Y' ) ;
END IF ;
END ;
MySQL said: Documentation
#1064 - You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near '' at line 13
Sagt viel oder?
Lg,
--
------------------------------------------------------------ ----
,yours Thomas Zangl - thomas@tzis.net - http://www.tzis.net/ -
- Freelancer - IT Consulting & Software Development -
Use Y.A.M.C! now! Get it at http://www.borg-kindberg.ac.at/yamc/
Re: Trigger - INSERT INTO bei Bedarf
am 02.01.2007 20:19:43 von Thomas Zangl
Claus Reibenstein wrote:
Hi!
> Du suchst INSERT IGNORE.
Genau. Danke!
Lg,
--
------------------------------------------------------------ ----
,yours Thomas Zangl - thomas@tzis.net - http://www.tzis.net/ -
- Freelancer - IT Consulting & Software Development -
Use Y.A.M.C! now! Get it at http://www.borg-kindberg.ac.at/yamc/