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

Pythonリスト(JSONまたはその他)をMySQLデータベースに挿入します

    MySQLライブラリにパラメータ処理を任せる必要があります。これには、MySQLにステートメントを準備させるという追加の利点があり、繰り返し挿入も高速になります。

    cur = con.cursor()    
    sql_input = "INSERT INTO 963168MBV17A(Rev, Part, SN, Iterations, Date, Time, Upstream, Downstream, ResultList, Result, Report) VALUES('503', '100-120970-0031', '1594539', ?, ?, ?, ?, ?, 0, P, 0"
    cur.execute(sql_input, (export_date, export_time, export_numtests, export_upstream, export_downstream))
    

    Python DBAPI2.0仕様 を参照してください。 パラメータ化されたSQLの(いくつかの)詳細については。サポートされている正確なパラメータ形式は、データベースアダプタごとに文書化されているため、それも確認してください。たとえば、MySQLdbモジュールは、Python文字列フォーマット構文を模倣し、%sを使用します。 プレースホルダーとして:

    sql_input = "INSERT INTO 963168MBV17A(Rev, Part, SN, Iterations, Date, Time, Upstream, Downstream, ResultList, Result, Report) VALUES('503', '100-120970-0031', '1594539', %s, %s, %s, %s, %s, 0, P, 0"
    

    その他の可能なパラメータオプションは数値(:1, :2 、など)、名前(:foo, :bar )または他の形式のPython文字列フォーマット、名前付きフォーマット指定子:(%(foo)s, %(bar)s



    1. MySQLデータベース内のすべてのテーブルのレコード数を取得します

    2. Oracleバルクコレクトに相当するPostgreSQL

    3. MySQL Galeraノードが起動していません(エラー'WSREP:[...]:60:プライマリビューに到達できませんでした:60(操作がタイムアウトしました)')

    4. SQLトリガー列名を変数に格納しているときにエラーが発生し、SQLトリガーのOLD.myvarに使用します