INSERT INTO pandasDataFrameからデータベースにアクセスします

アリ

誰かがデータベースに挿入するように見えるべきであるが、Pythonのすべてのデータフレームのように見えるべきか教えてもらえますか?

私はこれを見つけましたが、2つの数字(ID、Employee_id)を持つtest_dataと呼ばれるすべてのデータフレームを挿入する方法がわかりません。

IDの次の値(nextvalのようなもの)を挿入する方法もわかりません

ありがとうございました

import pyodbc 
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Users\test_database.mdb;')
cursor = conn.cursor()  
cursor.execute('''
                INSERT INTO employee_table (ID, employee_id)
                VALUES(?????????)
              ''')
conn.commit()
ゴード・トンプソン

更新、2020年6月:

sqlalchemy-access方言が復活したので、最善の解決策はパンダのto_sql方法を使用することです。

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_sql.html


(前の回答)

pyodbcのexecutemanyメソッドを使用して、pandasのメソッドを使用して行を渡すことができますitertuples

print(pyodbc.version)  ## 4.0.24 (not 4.0.25, which has a known issue with Access ODBC)
connection_string = (
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
    r'DBQ=C:\Users\Public\MyTest.accdb;'
)
cnxn = pyodbc.connect(connection_string, autocommit=True)
crsr = cnxn.cursor()

# prepare test environment
table_name = "employee_table"
if list(crsr.tables(table_name)):
    crsr.execute(f"DROP TABLE [{table_name}]")
crsr.execute(f"CREATE TABLE [{table_name}] (ID COUNTER PRIMARY KEY, employee_id TEXT(25))")

# test data
df = pd.DataFrame([[1, 'employee1'], [2, 'employee2']], columns=['ID', 'employee_id'])

# insert the rows from the DataFrame into the Access table    
crsr.executemany(
    f"INSERT INTO [{table_name}] (ID, employee_id) VALUES (?, ?)",
    df.itertuples(index=False))

更新:このようなパラメーター化されたクエリは、pyodbcバージョン4.0.27で再び機能しますが、4.0.25(上記のとおり)または4.0.26では機能しません。これらのバージョンを使用しようとすると、「オプション機能は実装されていません」というエラーが発生します。この問題については、https://github.com/mkleehammer/pyodbc/issues/509で説明しています

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

150以上のパラメータとデータの不一致を使用してINSERTクエリにアクセスします。どのパラメータが間違っているかを見つける方法は?

分類Dev

C#-@ Parametersを使用してInsertをデータベース接続クラスに送信する方法

分類Dev

データベースSQLServerのリストにIDENTITY_INSERTを設定します

分類Dev

AJAX呼び出しからの図がデータベースに存在する図よりも大きい場合にのみ、INSERTクエリを実行します

分類Dev

MySQLデータベーステーブルのINSERT順序を非表示にします

分類Dev

PyMongo Insertは、最大1億レコードの非常に遅いデータベースを挿入します

分類Dev

Delphiデータベースはデータソースからのデータにアクセスします

分類Dev

AWS RDSMySQLデータベースがpymysqlからINSERTステートメントを取得しない

分類Dev

$ wpdb-> insertを使用してデータベースに間違ったデータを挿入する

分類Dev

このinsert.addBatch()にアクセス外ループのためですか?

分類Dev

データベースエラー:「ストアドプロシージャ 'sp_insertが見つかりませんでした」

分類Dev

insert idは常に-1を返し、データはデータベースに挿入されません。誰か助けてください

分類Dev

Android StudioのAlt-Insertゲッター/セッターで削除するプレフィックス(「m」など)をどのように設定しますか?

分類Dev

Eloquentのデータベースからlast_insert_idを取得できません

分類Dev

新しいデータベースのインポート、mysql_insert_id()は0を返します

分類Dev

SQLiteデータベースのUPDATEまたはINSERTが機能しない

分類Dev

phonegapのアセットからsqliteデータベースにアクセスします

分類Dev

JavaScriptからSQLiteデータベースにアクセスできますか?

分類Dev

同じサーバーから別のデータベースにアクセスしますか?

分類Dev

Spring Data JPAが実際にデータベースでINSERTを呼び出すのはいつですか?

分類Dev

GrailsコンソールからGrailsmysqlデータベースにアクセスしますか?

分類Dev

ASP.NET CoreMVCのSQLデータベースからユーザーICollectionにアクセスします

分類Dev

Oracleデータベースに対する「UPDATEvs.INSERT」クエリのバッチ処理

分類Dev

リモートMongoDBデータベースにアクセスしますか?

分類Dev

SelectはSqliteデータベースで機能しますが、InsertステートメントとUpdateステートメントは機能しません

分類Dev

sqliteデータベースからデータにアクセスする

分類Dev

Oracleデータベース12cからSQLServer2014にアクセスします

分類Dev

Wordpressの投稿から外部データベースにアクセスします:ERR_INCOMPLETE_CHUNKED_ENCODING

分類Dev

ネイティブからプラグインのsqliteデータベースにアクセスします

Related 関連記事

  1. 1

    150以上のパラメータとデータの不一致を使用してINSERTクエリにアクセスします。どのパラメータが間違っているかを見つける方法は?

  2. 2

    C#-@ Parametersを使用してInsertをデータベース接続クラスに送信する方法

  3. 3

    データベースSQLServerのリストにIDENTITY_INSERTを設定します

  4. 4

    AJAX呼び出しからの図がデータベースに存在する図よりも大きい場合にのみ、INSERTクエリを実行します

  5. 5

    MySQLデータベーステーブルのINSERT順序を非表示にします

  6. 6

    PyMongo Insertは、最大1億レコードの非常に遅いデータベースを挿入します

  7. 7

    Delphiデータベースはデータソースからのデータにアクセスします

  8. 8

    AWS RDSMySQLデータベースがpymysqlからINSERTステートメントを取得しない

  9. 9

    $ wpdb-> insertを使用してデータベースに間違ったデータを挿入する

  10. 10

    このinsert.addBatch()にアクセス外ループのためですか?

  11. 11

    データベースエラー:「ストアドプロシージャ 'sp_insertが見つかりませんでした」

  12. 12

    insert idは常に-1を返し、データはデータベースに挿入されません。誰か助けてください

  13. 13

    Android StudioのAlt-Insertゲッター/セッターで削除するプレフィックス(「m」など)をどのように設定しますか?

  14. 14

    Eloquentのデータベースからlast_insert_idを取得できません

  15. 15

    新しいデータベースのインポート、mysql_insert_id()は0を返します

  16. 16

    SQLiteデータベースのUPDATEまたはINSERTが機能しない

  17. 17

    phonegapのアセットからsqliteデータベースにアクセスします

  18. 18

    JavaScriptからSQLiteデータベースにアクセスできますか?

  19. 19

    同じサーバーから別のデータベースにアクセスしますか?

  20. 20

    Spring Data JPAが実際にデータベースでINSERTを呼び出すのはいつですか?

  21. 21

    GrailsコンソールからGrailsmysqlデータベースにアクセスしますか?

  22. 22

    ASP.NET CoreMVCのSQLデータベースからユーザーICollectionにアクセスします

  23. 23

    Oracleデータベースに対する「UPDATEvs.INSERT」クエリのバッチ処理

  24. 24

    リモートMongoDBデータベースにアクセスしますか?

  25. 25

    SelectはSqliteデータベースで機能しますが、InsertステートメントとUpdateステートメントは機能しません

  26. 26

    sqliteデータベースからデータにアクセスする

  27. 27

    Oracleデータベース12cからSQLServer2014にアクセスします

  28. 28

    Wordpressの投稿から外部データベースにアクセスします:ERR_INCOMPLETE_CHUNKED_ENCODING

  29. 29

    ネイティブからプラグインのsqliteデータベースにアクセスします

ホットタグ

アーカイブ