sql >> データベース >  >> RDS >> Mysql

doubleデータ型にNULL値を挿入するMySQLPython

    これは完全に驚くべきことではありません。最初の例では、Pythonの事前定義された定数なし を挿入しています。

    これはSQLNULLに相当します 。 2番目の例では、「None」という文字列をテーブルに挿入しています。これら2つは非常に異なります。文字列をdoubleフィールドまたはfloatフィールドに挿入すると、あらゆる種類のエラーが表示されます。ほとんどの場合、表示されたエラーとまったく同じです。

    最初に、宣言したので機能します:

     `float8value` double DEFAULT NULL,
    

    これはNULLを受け入れ、Noneは値リストの8番目にあります。多くの異なるパラメーターが使用されている場合は、各列に何がバインドされているかが一目でわかるように、名前付きパラメーターを使用することをお勧めします。

    更新:

    コードを実行した後、到達できる唯一の結論は、print(cursor.statement)を使用してバグを見つけたということです。 実行されたクエリがであることがわかります。

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

    これによってエラーが発生することはありませんが、最初の値のセットを消去すると、実際にエラーが発生します。バグレポートを提出することをお勧めします




    1. データソースでのMySQL接続妥当性テスト:SELECT 1またはそれ以上?

    2. BULK INSERTSQLSERVERの楽しみ-指定されたコードページの型の不一致または無効な文字

    3. ユーザーが同じレコードを編集できないようにする

    4. postgresql / PL/pgSQLで関数を作成するときにタプルが同時に更新されます