MySQL - Dezimal kann nicht NULL sein

7

Jedes Mal, wenn ich versuche, eine Insert-Anweisung in meine Dastabase zu schreiben, erhalte ich einen "Falscher Dezimalwert: 'NULL' für die Spalte 'bounty3' bei Zeile 1" -Fehler. Wie füge ich einen Null-Wert in einen Dezimal-Datentyp ein? Soll ich nur den Standardwert 0.00 machen?

%Vor%

Ich habe diese Anweisung auch mit einem NULL-Wert versucht. Hier ist der Fehler:

%Vor%     
user547794 18.09.2011, 06:29
quelle

8 Antworten

5

Verwenden Sie leer, nicht null, wenn Sie den Standardwert wünschen.

    
user557846 18.09.2011, 06:33
quelle
11

Oh ... du versuchst eine leere Zeichenfolge in bounty3 einzufügen. Ersetzen Sie es durch NULL. Ich habe auch leere Strings für andere mögliche numerische Werte bemerkt, zB bonty4. Sie sollten alle leeren Zeichenfolgen durch NULL für numerische Werte ersetzen.

zB: mysql_query ("INSERT INTO empty_number, Nummer VALUES (NULL, 1)");

BEARBEITEN : HEY HEY bekommt den Punkt, Sie können NULL nicht auf einen numerischen Wert als 'NULL' einfügen, da dies eine Zeichenfolge ist, die Sie ohne Anführungszeichen als NULL einfügen sollten

    
user517491 18.09.2011 06:42
quelle
3

Ich habe dieses Problem in MySql 5.1.61 behandelt. Wenn sich der Server im strikten Modus befindet, müssen Sie anstelle von '' für Dezimalfelder 0 eingeben. Wenn Sie den strikten Modus deaktivieren, können Sie einfach einen Nullwert auffüllen.

    
user3249681 29.01.2014 16:12
quelle
1

Sie können diese Abfrage ausführen, um NULL-Werte im Feld 'bounty3' zuzulassen.

ALTER TABLE songs ÄNDERN bounty3 bounty3 DECIMAL (10,0) NULL;

    
Daniel García 18.09.2011 06:43
quelle
0

Sie müssen sicherstellen, dass Ihr Datenbankschema NULL-Werte für diese Spalte zulässt. Führen Sie describe <tablename>; in Ihrem MySQL-Client aus, um zu sehen, was das Schema für diese Tabelle ist.

Wenn das Schema null nicht zulässt, können Sie alter table verwenden, um das Schema zu ändern. Stellen Sie sicher, dass Sie für diese Spalte NOT NULL nicht angeben, und Sie sollten in Ordnung sein.

    
Cameron Skinner 18.09.2011 06:35
quelle
0

Stellen Sie sicher, dass der Feldtyp NULL -Werte zulässt und dass der Standardwert NULL ist.

Verwenden Sie dann:

%Vor%

Dies funktioniert für Einfügungen oder Aktualisierungen.

Ich habe versucht, $date_value = NULL zu verwenden, und ich habe sogar unset($date_value) vor dem Einfügen oder Aktualisieren versucht, und es hat nie mit meinen Dezimalfeldern funktioniert. MySQL hat sie immer in 0.00 konvertiert. Die obige Methode war die einzige Lösung, die für mich funktionierte.

    
Robert Lattery 13.02.2015 00:50
quelle
0

Danke, es funktionierte mit NULL, wenn es leer ist:

%Vor%     
Filipe 03.01.2016 03:36
quelle
0

Eine andere Option besteht darin, sicherzustellen, dass die leeren Zellen oder Felder in Ihren Quelldaten 'NULL' enthalten, bevor Sie sie in MySQL importieren. Auf diese Weise erkennt MySQL diese Felder als wirklich NULL und wandelt sie nicht in Nullen um.

    
Brooky 24.05.2017 13:29
quelle

Tags und Links