Moin!
»» Wenn die Postleitzahl bereits drinsteht, dann ist das Vehalten MySQL-typisch normal.
Warum, verstehe ich nicht.
Weil MySQL nur die Spalten zählt, die tatsächlich aktualisiert wurden, d.h. in denen sich was verändert hat. Wenn sich nichts ändert, wird nichts gezählt.
Dieses Verhalten kannst du mit einem Parameter auf PHP-Seite bei Eröffnung der Connection verändern, aber mir fällt gerade nicht ein, wie der heißt.
ist das bei smallint so?
Postleitzahlen, gerade auch deutsche, sind keine Integer-Zahlen, sondern Strings der Länge 5.
Wie kann ich dann so ein Update durchführen.
Dachte immer das wäre gleich, ob smallint oder INT (nur halt weniger zeichen)
Zunächst mal: Die Zahlenangabe bei Zahlentypen definiert die Länge der Ausgabe bei ZEROFILL. Ein BIGINT(2) verbraucht nicht deshalb weniger Speicherplatz, weil er nur zwei Stellen lang sein soll - er würde bei Nutzung von ZEROFILL nur auf zwei Stellen mit Nullen aufgefüllt.
Und wie erwähnt: Postleitzahlen sind keine Integers, auch keine fünfstelligen. Und der Typ SMALLINT mit seinem maximalen Wertebereich von 0-65535 ist sowieso zu klein für die vollständige Erfassung aller deutschen Postleitzahlen. Zahlenwerte mit 7xxxx, 8xxxx und 9xxxx kommen ebenso vor, wie 0xxxx, ohne dass die führende Null wegreduziert werden dürfte.
- Sven Rautenberg