Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Inserindo valor NULL em um tipo de dados duplo MySQL Python


Isso não é totalmente surpreendente. Na primeira instância, você está inserindo a constante predefinida do python Nenhum

Isso equivale a SQL NULL . Na segunda instância você está inserindo uma String chamada 'None' na tabela. Esses dois são muito diferentes. Se você inserir uma string em um campo double ou float, verá todos os tipos de erros, na maioria das vezes, o exato que você viu.

na primeira instância, funciona porque você declarou:
 `float8value` double DEFAULT NULL,

Isso aceita NULL e Nenhum está em 8º lugar na sua lista de valores. Quando muitos parâmetros diferentes estão sendo usados, é sempre uma boa ideia usar parâmetros nomeados para que seja óbvio de relance o que está sendo vinculado a cada coluna.

Atualizações:

Depois de executar seu código, a única conclusão que pode ser alcançada é que você encontrou um bug, usando print(cursor.statement) é possível descobrir que a consulta executada é.
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')

Isso não produz um erro, mas se você apagar o primeiro conjunto de valores, o erro será realmente produzido. Minha recomendação é registrar um relatório de bug