Hallo,
ich bin noch etwas neu in der SQL Sprache und bin mit HeidiSQL mega glücklich. Es hat mir enorm geholfen vieles zu verstehen und umzusetzen.
Nun versuche ich mir an Triggern und einer macht mir sehr zu schaffen.
CREATE TABLE IF NOT EXISTS `Spieler` (
`Spieler_ID` int(11) NOT NULL AUTO_INCREMENT,
`Steam_ID` varchar(64) DEFAULT NULL,
`Discord_ID` varchar(64) DEFAULT NULL,
`Discord_Name` varchar(64) DEFAULT NULL,
`Funcom_ID` varchar(64) DEFAULT NULL,
`Funcom_Name` varchar(64) DEFAULT NULL,
`Role_ID` varchar(64) DEFAULT NULL,
`Alive_Since` datetime DEFAULT NULL,
`Play_Time` int(64) DEFAULT 0,
`Start_Time` int(64) DEFAULT NULL,
`Death_Count` int(11) unsigned NOT NULL DEFAULT 0,
`Online` int(11) DEFAULT NULL,
PRIMARY KEY (`Spieler_ID`) USING BTREE,
KEY `Servers` (`Online`) USING BTREE,
KEY `Role_ID` (`Role_ID`),
CONSTRAINT `Role_ID` FOREIGN KEY (`Role_ID`) REFERENCES `Roles` (`Role_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `Server_ID` FOREIGN KEY (`Online`) REFERENCES `Servers` (`Server_ID`) ON DELETE SET NULL ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Ich möchte in Play_Time
die Sekunden Speichern die der Spieler Online war. Egal welchen Wert ich in Play_Time
schreibe, wie 120 dann kommt "0 rows updated when that should have been 1." und es kann nicht gespeichert werden. Daher komm ich bei meinem Trigger nicht weiter.
Vielleicht denk ich nur falsch. Kurz zur Erklärung was ich eigentlich für einen Trigger erstellen möchte.
Wenn Online
ein Wert hat der nicht NULL
ist, soll die Jetzt Zeit in Start_Time
gespeichert werden.
Wenn der Wert in Online
sich in NULL
ändert dann soll die Jetzt Zeit mit der aus Start_Time
verrechnet werden um diese Zeit auf Play_Time
zu addieren.
Ich hoffe das war verständlich.
Beste Grüße FreeFun