mediumint(10) endet bei 8388607
einigen (mindestens drei) leuten war sicherlich aufgefallen, dass der beitrag "Dogs" erst ohne bild online stand.. ich hatte allerdings in dem moment keine zeit zu gucken, woran das lag. mein script hatte das bild auch nicht bei flickr hochgeladen, es war also irgendwas groesseres schief gegangen. eben hatte ich dann die zeit mal genauer nachzugucken.
zunaechst mal habe ich mein script einfach nochmal laufen lassen.. das foerderte folgenden fehler zutage:
nachdem ich mit hilfe der fehlermeldung kurz bei google recherchiert habe, habe ich herausgefunden, dass mysql 5 wohl restriktiver als seine vorgaenger ist. d.h. wenn man einen wert in ein feld speichern will, der da nicht rein passt - in meinem falle mehr als 8388607 in das feld SITE_DISKUSAGE - dann wird eine meldung ausgegeben (und der wert angepasst), statt einfach nur stillschweigend den wert passend zu machen. die loesung des problems liegt also nahe: das feld groesser machen. ich habe das feld nun per
zunaechst mal habe ich mein script einfach nochmal laufen lassen.. das foerderte folgenden fehler zutage:
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value adjusted for column 'SITE_DISKUSAGE' at row 1da das als xmlrpc error kam hat mein script an der stelle (folgerichtig) die verarbeitung abgebrochen.. der flickr upload und das anhaengen des bildes an den beitrag kommt spaeter.. ist also nicht passiert. die frage warum das bild nicht am beitrag war, waere also geklaert.. das problem dadurch aber nicht geloest.
nachdem ich mit hilfe der fehlermeldung kurz bei google recherchiert habe, habe ich herausgefunden, dass mysql 5 wohl restriktiver als seine vorgaenger ist. d.h. wenn man einen wert in ein feld speichern will, der da nicht rein passt - in meinem falle mehr als 8388607 in das feld SITE_DISKUSAGE - dann wird eine meldung ausgegeben (und der wert angepasst), statt einfach nur stillschweigend den wert passend zu machen. die loesung des problems liegt also nahe: das feld groesser machen. ich habe das feld nun per
alter table AV_SITE change SITE_DISKUSAGE SITE_DISKUSAGE int(11) unsigned null;
auf int(11) UNSIGNED gestellt - sollte ich diese 4GB grenze irgendwann knacken, werde ich mir wohl erstmal gedanken machen, wofuer ich den ganzen platz verwendet habe..geschrieben am 5. Juni 2006, 22:06 in internes