Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Einfügen eines NULL-Werts in einen doppelten Datentyp MySQL Python

Dies ist nicht ganz überraschend. Im ersten Fall fügen Sie die vordefinierte Python-Konstante None ein

Das entspricht SQL NULL . Im zweiten Fall fügen Sie einen String namens „None“ in die Tabelle ein. Diese beiden sind sehr unterschiedlich. Wenn Sie einen String in ein Double- oder Float-Feld einfügen, werden Sie alle Arten von Fehlern sehen, meistens genau den, den Sie gesehen haben.

Im ersten Fall funktioniert es, weil Sie :

deklariert haben
 `float8value` double DEFAULT NULL,

Dies akzeptiert NULL und None steht an 8. Stelle in Ihrer Werteliste. Wenn viele verschiedene Parameter verwendet werden, ist es immer eine gute Idee, benannte Parameter zu verwenden, damit auf einen Blick ersichtlich ist, was an jede Spalte gebunden ist.

Aktualisierungen:

Nachdem Sie Ihren Code ausgeführt haben, können Sie nur feststellen, dass Sie einen Fehler gefunden haben, indem Sie print(cursor.statement) verwenden Es ist möglich zu entdecken, dass die ausgeführte Abfrage ist.

INSERT INTO runsettings (apcrunid,equipment,runnumber,wafer,settingname,intvalue,floatvalue,float8value) 
VALUES (471285,'CT19',7,'271042','Etch Time Min',NULL,NULL,NULL),
       (471285,'CT19',7,'00000','Etch Time Min',NULL,NULL,'None')

Dies erzeugt keinen Fehler, aber wenn Sie den ersten Wertesatz löschen, wird der Fehler tatsächlich erzeugt. Meine Empfehlung ist, einen Fehlerbericht einzureichen