2012-03-26 11 views
1

Wenn ich neue Spalte zu meiner Tabelle hinzufügen und Datentyp z. 10.2 nach dem Speichern konvertieren zu 10.0 Wie kann ich es tun.MySQL + phpMyAdmin Dezimalwerte standardmäßig jedes Mal auf Null

Kann jemand eine SQL-Anfrage erstellen, um eine Tabelle mit Dezimal-Datentyp zu erstellen, ich möchte es ausführen und sehen, ob es so funktioniert?

+0

Warum nicht einfach es ein int machen und es konvertiert werden, bevor auf die Datenbank zu speichern? Alternativ setzen Sie die Dezimalstellen des Feldes auf 0. Das könnte funktionieren – dreza

+0

Zeige das aktuelle Schema der Tabelle –

+0

dreza Wie kann ich konvertieren? – JohnA

Antwort

0

Überprüfen Sie Ihr Tabellenschema. Für dezimale Datentypen ist die Nummer decimals (D) erforderlich.

DECIMAL(M,D) - Eine entpackte Gleitkommazahl, die nicht vorzeichenlos sein kann. Das Definieren der Anzeige length (M) und der n umber of decimals (D) ist erforderlich.

Beispiel Schema

Create Table Stu(
id int(11) NOT NULL auto_increment, 
field_name decimal(10,2) default NULL 
); 
+0

Mit anderen Worten, Sie benötigen ein Komma, keine Dezimalstelle zwischen den zwei Ziffernlängen. Sie sollten 10,2 nicht 10,2 angeben - das spätere wird als ein einziger Parameter interpretiert (in Ganzzahl 10 umgewandelt) und so definiert nur die Anzahl der Ziffern auf der linken Seite. –

0

Ich hatte ein ähnliches Problem, wenn die phpMyAdmin-Schnittstelle mit einer Tabelle zu bearbeiten. Jedes Mal, wenn ich versuchte, das Feld Dezimal (6) in Dezimal (6,2) zu ändern; wenn ich loslege, würde es jedes Mal mit Dezimal (6) zurückkommen. Wenn alles andere fehlschlägt, bearbeiten Sie den direkt generierten Code. Es hat für mich funktioniert.

0

Verwenden Sie diese Abfrage Ihre Dezimalwert zu ändern:

ALTER TABLE table_name CHANGE column_name column_name DECIMAL(10,2) UNSIGNED NOT NULL;