Dit is niet geheel verrassend. In eerste instantie voegt u de door Python vooraf gedefinieerde constante Geen in
Dat komt overeen met SQL NULL
. In het tweede geval voegt u een string met de naam 'None' in de tabel in. Deze twee zijn heel verschillend. Als je een string in een dubbel- of float-veld invoegt, zie je allerlei soorten fouten, meestal de exacte die je hebt gezien.
in eerste instantie werkt het omdat je hebt aangegeven:
`float8value` double DEFAULT NULL,
Dit accepteert NULL en Geen staat op de 8e plaats in uw lijst met waarden. Als er veel verschillende parameters worden gebruikt, is het altijd een goed idee om benoemde parameters te gebruiken, zodat het in één oogopslag duidelijk is wat er aan elke kolom wordt gebonden.
Updates:
Na het uitvoeren van uw code, is de enige conclusie die kan worden bereikt, dat u een bug hebt gevonden door print(cursor.statement)
te gebruiken. het is mogelijk om te ontdekken dat de uitgevoerde query is.
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')
Dit levert geen fout op, maar als u de eerste set waarden wist, wordt de fout inderdaad geproduceerd. Mijn aanbeveling is om een bugrapport in te dienen