Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wstawianie wartości NULL do podwójnego typu danych MySQL Python

Nie jest to całkowicie zaskakujące. W pierwszym przypadku wstawiasz predefiniowaną stałą Pythona Brak

To równa się SQL NULL . W drugim przypadku wstawiasz do tabeli ciąg o nazwie „Brak”. Te dwie rzeczy są bardzo różne. Jeśli wstawisz ciąg do pola podwójnego lub zmiennoprzecinkowego, zobaczysz wszelkiego rodzaju błędy, najczęściej dokładnie ten, który widziałeś.

w pierwszej kolejności działa, ponieważ zadeklarowałeś:

 `float8value` double DEFAULT NULL,

Akceptuje NULL, a None znajduje się na 8 miejscu na liście wartości. Gdy używanych jest wiele różnych parametrów, zawsze dobrym pomysłem jest użycie parametrów nazwanych, aby na pierwszy rzut oka było jasne, co jest powiązane z każdą kolumną.

Aktualizacje:

Po uruchomieniu kodu jedynym wnioskiem, do którego można dojść, jest to, że znalazłeś błąd, używając print(cursor.statement) można odkryć, że wykonane zapytanie jest.

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

Nie powoduje to błędu, ale jeśli usuniesz pierwszy zestaw wartości, rzeczywiście wystąpi błąd. Zalecam złożenie raportu o błędzie




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak połączyć wartość z innej tabeli za pomocą tej samej wartości warunku

  2. Mysql PDO maksymalna długość danych LONGBLOB podczas pobierania

  3. Jak mogę użyć executemany, aby wstawić do MySQL listę słowników w Pythonie?

  4. Usunąć, zaktualizować z tabelami pochodnymi?

  5. cakephp wykorzystujący komponenty jako metody kontrolera