Willkommen im neuen Forum von concrete5.de.
Die Anmeldung ist ab dem 15.10.2020 nur noch mit E-Mail Adresse und Passwort möglich. Eine Anmeldung mit Benutzername ist nicht mehr möglich.
Diese Nachricht löschen.
Anhang entfernen?
Zurück zur Themenliste
T
tts 02.05.2014 14:43
MySQL-Fehler beim Hinzufügen von Dateien zu Alben Gelöst
Hi Remo,
seit ein paar Tagen funktioniert auf einer meiner Seiten das Hinzufügen von Dateien zu Alben nicht mehr. Im Error Log finde ich folgenden Fehler:
[Column 'timestamp' cannot be null] in EXECUTE("INSERT INTO FileSetFiles(fsfID,fID,fsID,timestamp,fsDisplayOrder) VALUES (NULL,'10','2',NULL,'0')")
Beim Hoster wurde vor Kurzem auf MySQL 5.6 umgestellt. Sonstige Änderungen sind mir nicht bekannt.
Hast du irgend ne (grobe) Idee, woran's liegen könnte oder was ich versuchen könnte?
Viele Grüße
Karl
Umgebung: PHP 5.5.11, c5.6.1.2 (5.6.3.1 hab ich auch schon versucht.)
T
tts 03.05.2014 13:49
Auf der betroffenen Website (die schon seit längerem auf dem Server läuft) sieht das Ganze so aus:
CREATE TABLE `FileSetFiles` (
`fsfID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`fID` int(10) unsigned NOT NULL,
`fsID` int(10) unsigned NOT NULL,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`fsDisplayOrder` int(10) unsigned NOT NULL,
PRIMARY KEY (`fsfID`),
KEY `fID` (`fID`),
KEY `fsID` (`fsID`)
) ENGINE=MyISAM AUTO_INCREMENT=87 DEFAULT CHARSET=utf8
Gestern hab ich mal zu Testzwecken eine komplett neue Installation auf dem selben Server aufgesetzt. Da sieht's anders aus:
CREATE TABLE `FileSetFiles` (
`fsfID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`fID` int(10) unsigned NOT NULL,
`fsID` int(10) unsigned NOT NULL,
`timestamp` timestamp NOT NULL,
`fsDisplayOrder` int(10) unsigned NOT NULL,
PRIMARY KEY (`fsfID`),
KEY `fID` (`fID`),
KEY `fsID` (`fsID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
Hier erscheint dann auch die selbe Fehlermeldung beim Hinzufügen zu Alben.
Als Übergangslösung hab ich dann den Default-Wert für die Spalte timestamp auf NULL gesetzt - dann klappt alles. Aber ich würd lieber gern wissen, woran's liegt ...
R
Remo 03.05.2014 15:32
Ja, da fehlt definitiv etwas. Ich würde aber nicht null als default sondern currenttimestamp nehmen, ansonsten hast du vielleicht plötzlich noch andere Probleme.
Ich könnte mir vorstellen, dass das mit einer Änderung bez. Strict Mode zu tun hat (http://dev.mysql.com/doc/refman/5.6/en/sql-mode.html#sqlmode_strict_trans_tables). Da müsste man aber etwas genauer schauen..
T
tts 04.05.2014 13:32
Leider macht es keinen Unterschied, ob ich den Default-Wert auf NULL oder CURRENT_TIMESTAMP setze. In beiden Fällen wird die Spalte timestamp mit NULL befüllt, sobald ich eine Datei zu einem Album hinzufüge.
Ob es funktioniert oder nicht, hängt davon ab, ob ich den NULL-Wert für die Spalte timestamp zulasse oder nicht:
NULL-Wert zugelassen >>> Datei wird zum Album hinzugefügt.
NULL-Wert nicht zugelassen >>> Exception wie oben beschrieben.
Den SQL-Mode habe ich mir auch mal angesehen. Der ist auf "NO_ENGINE_SUBSTITUTION" gesetzt.
Ich befürchte, hier kommen wir nicht weiter, Remo. Ich sag trotzdem danke!
R
Remo 05.05.2014 08:48
Ich würde in diesem Fall versuchen das Problem auf die relevanten SQL Abfragen zu beschränken. Wenn du ein CREATE TABLE + INSERT INTO Statement hast, wo das Problem auftritt, dann lässt es sich sicher einfacher beheben. Es scheint auch, als gäbe es ein paar Fälle wo ON UPDATE CURRENT_TIMESTAMP nicht funktioniert. Selber hatte ich das Problem aber nie..
Nachricht hinzufügen
Sie müssen sich anmelden , um diese Konversation zu posten.