Dette er ikke helt overraskende. I første omgang indsætter du den foruddefinerede python-konstant Ingen
Det svarer til SQL NULL
. I det andet tilfælde indsætter du en streng kaldet 'Ingen' i tabellen. Disse to er meget forskellige. Hvis du indsætter en streng i et dobbelt- eller flydende felt, vil du se alle slags fejl, oftest den nøjagtige, du har set.
i første omgang virker det, fordi du har erklæret :
`float8value` double DEFAULT NULL,
Dette accepterer NULL og Ingen er på 8. pladsen i din værdiliste. Når der bruges mange forskellige parametre, er det altid en god idé at bruge navngivne parametre, så det er tydeligt med et øjeblik, hvad der er bundet til hver kolonne.
Opdateringer:
Efter at have kørt din kode, er den eneste konklusion, der kan nås, at du har fundet en fejl ved at bruge print(cursor.statement)
det er muligt at opdage, at den udførte forespørgsel er.
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')
Dette giver ikke en fejl, men hvis du sletter det første sæt værdier, er fejlen faktisk produceret. Min anbefaling er at indsende en fejlrapport