phpbar.de logo

Mailinglisten-Archive

warum wurden Felder neu definiert

warum wurden Felder neu definiert

Sebastian Mendel lists at sebastianmendel.de
Don Mai 19 10:18:00 CEST 2005


Norbert Pfeiffer wrote:
> Hi,
> 
> folgendes ist passiert:
> Es wurde ein MySQL-Server auf 4.1.7 geupdatet.
> Weil es einfacher ist, wurden alle Tabellen als Dateien
> kopiert, also nicht via Dump auf den Server gespielt.
> Soweit lief erst mal alles ...
> 
> Dann trat der Fehler auf, dass Werte bei neuen Inserts
> ploetzlich verfaelscht wurden, z.B.:
> INSERT INTO encashments (amount) VALUE (47.11);
> SELECT amount FROM encashments WHERE amount = 47.11;
> Empty set (0.00 sec)
> aber:
> SELECT id, amount FROM encashments ORDER BY id DESC LIMIT 5;
> +------+--------+
> | id   | amount |
> +------+--------+
> | 2536 |   9.99 | neuer Wert
> | 2535 |  54.95 | alter Wert
> | 2534 |  44.95 | alter Wert
> | 2533 |  39.95 | alter Wert
> | 2532 |  24.95 | alter Wert
> +------+--------+
> 
> Frage:    Wie wird aus 47.11 ploetzlich 9.99 ?
> Antwort:  Indem die Bedeutung der Parameter fuer
>           ein Double-Feld geaendert werden:
>           Frueher:       amount(3,2) -> 5-stellig
>           MySQL 4.1.7:   amount(3,2) -> 3-stellig

'Frueher' ist dann aber bei dir mindestens 3.xx, oder sogar < 3.23 ?

aber so oder so komisch! eventuell liegt der Fehler ja auch woanders

denn laut Handbuch war auch bei der 3er Version (3,2) auch schon von 
-9.99 bis 9.99, vor 3.23 sogar eigentlich gar nicht möglich, weil der 
Punkt '.' und das Minusvorzeichen auch gezählt wurde also ein (5,2) 
hätte da von -9.99 bis 99.99 gereicht .. demzufolge ein (3,2) von .00 
bis .99 .. mhm, aber die wirst ja wohl wenigstens eine 'aktuelle' 3er 
Version gehabt haben

mal ganz abgesehen davon das ich es eh für sehr gewagt halte von 3.23 
auf 4.1 umzustellen ohne import/export -- ganz abgesehen davon das ich 
es auch so gemacht habe ;-) - sogar ohne irgendwas wegzukopieren oder, 
einfach darüber installiert (abgesehen von einem Backup natürlich) ... ;-)

Tatsache ist aber auf jeden Fall das das aktuelle verhalten SQL-Konform 
ist, so wie es sein sollte!

Wahrscheinlich stimmt eher irgendwas mit deiner früheren Version nicht!


-- 
Sebastian Mendel

www.sebastianmendel.de
www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive