Това не е напълно изненадващо. В първия случай вмъквате предварително дефинираната константа на Python Няма
Това се равнява на SQL NULL
. Във втория случай вмъквате низ, наречен „Няма“, в таблицата. Тези двамата са много различни. Ако вмъкнете низ в двойно или плаващо поле, ще видите всякакви грешки, най-често точно тази, която сте виждали.
в първия случай работи, защото сте декларирали :
`float8value` double DEFAULT NULL,
Това приема NULL и None е на 8-мо място във вашия списък със стойности. Когато се използват много различни параметри, винаги е добра идея да използвате наименувани параметри, така че да е очевидно с един поглед какво се свързва с всяка колона.
Актуализации:
След като изпълните кода си, единственото заключение, до което може да се стигне, е, че сте открили грешка, като използвате print(cursor.statement)
възможно е да откриете, че изпълнената заявка е.
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')
Това не води до грешка, но ако изтриете първия набор от стойности, грешката наистина се получава. Моята препоръка е да подадете доклад за грешка