sql >> Databáze >  >> RDS >> Mysql

Vložení hodnoty NULL do dvojitého datového typu MySQL Python

To není úplně překvapivé. V prvním případě vkládáte předdefinovanou konstantu pythonu Žádné

To se rovná SQL NULL . Ve druhém případě vkládáte do tabulky řetězec s názvem 'None'. Tito dva jsou velmi odlišní. Pokud vložíte řetězec do dvojitého nebo plovoucího pole, uvidíte všechny druhy chyb, nejčastěji přesně tu, kterou jste viděli.

v prvním případě to funguje, protože jste deklarovali :

 `float8value` double DEFAULT NULL,

To přijímá NULL a None je na 8. místě ve vašem seznamu hodnot. Když se používá mnoho různých parametrů, je vždy dobré použít pojmenované parametry, aby bylo na první pohled zřejmé, co je s každým sloupcem vázáno.

Aktualizace:

Po spuštění kódu lze dospět k jedinému závěru, že jste našli chybu pomocí print(cursor.statement) je možné zjistit, že provedený dotaz je.

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')

To nezpůsobí chybu, ale pokud vymažete první sadu hodnot, chyba skutečně vznikne. Moje doporučení je podat hlášení o chybě




  1. Dynamický (Column Based) Interval

  2. MySQL Kde je datum a čas větší než dnes

  3. Jak se vyhnout vícenásobnému vložení v PostgreSQL

  4. BIGINT výkon mysql ve srovnání s INT