私は、NULL、浮動小数点数および時折のNanを含むいくつかのデータを持っています。私はこのデータをPythonとMySqldbを使ってMySQLデータベースに挿入しようとしています。MySQLデータベースにNaN値を挿入する
ここで挿入文です:
for row in zip(currents, voltages):
row = [id] + list(row)
for item in row:
sql_insert = ('INSERT INTO result(id, current, voltage)'
'VALUES(%s, "%s")')
cursor.execute(sql_insert, row)
これはテーブルです:私は、テーブルにはNaNを挿入しようとすると
CREATE TABLE langmuir_result (result_id INT auto_increment,
id INT,
current FLOAT,
voltage FLOAT,
PRIMARY KEY (result_id));
は、私はこのエラーを取得する:
_mysql_exceptions.DataError: (1265, "Data truncated for column 'current' at row 1")
私はNaN値を浮動小数点数または文字列またはNULLではなく数値としてデータベースに挿入します。私は列の型をFLOATとDECIMALにしようとしましたが、同じエラーが発生します。これを文字列やNULLにすることなく、どうすればいいですか?それは可能ですか?
いいえ、NaN値をMysqlのFLOAT型列に格納することはできません。許可される値はNULLまたは数値のみです。 NaN(多分負の値、大きい値/小さい値)には使用しない値を使用して解決できます。 – nacho
保存しようとしている浮動小数点のサイズを知っている場合、NaNは特にIEEE浮動小数点数でエンコードされます。 「IEEE 754 NaNは、(無限大値のような)1で満たされた指数部フィールドと、(無限大値と区別されるように)仮数部の非ゼロ数値で表されます。 https://en.wikipedia.org/wiki/NaN#Floating_point – VoNWooDSoN
@nacho完璧、ありがとう!それを答えとして追加したい場合は、私はそれを受け入れるでしょう –