PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara mengembalikan dataframe.to_sql dengan python di SQLAlchemy?

Anda dapat memulai transaksi sebelum memanggil to_sql lalu lakukan rollback setelahnya:

import pandas as pd
import sqlalchemy as sa

engine = sa.create_engine("mssql+pyodbc://@mssqlLocal64")

def dump_tran_test_table(conn):
    print(conn.execute(sa.text("SELECT * FROM tran_test")).fetchall())

# set up test environment
with engine.begin() as conn:
    conn.exec_driver_sql("DROP TABLE IF EXISTS tran_test")
    conn.exec_driver_sql(
        "CREATE TABLE tran_test "
        "(txt varchar(10), id int primary key)"
    )
    conn.exec_driver_sql(
        "INSERT INTO tran_test (txt, id) VALUES "
        "('old_foo', 1), ('old_bar', 2)"
    )

# test
with engine.connect() as conn:
    tran = conn.begin()
    df = pd.DataFrame([("new_baz", 3)], columns=["txt", "id"])
    df.to_sql("tran_test", conn, index=False, if_exists="append")
    dump_tran_test_table(conn)
    """console output:
    [('old_foo', 1), ('old_bar', 2), ('new_baz', 3)]
    """
    tran.rollback()
    dump_tran_test_table(conn)
    """console output:
    [('old_foo', 1), ('old_bar', 2)]
    """



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. perintah ifelse &grepl saat menggunakan dplyr untuk operasi SQL in-db

  2. Metode yang tidak ditentukan auto_upgrade! saat mendorong aplikasi Sinatra/DataMapper ke Heroku

  3. 7 Cara Menemukan Baris Duplikat di PostgreSQL sambil Mengabaikan Kunci Utama

  4. Solusi Cloud PostgreSQL Terkelola Tolok Ukur - Bagian Satu:Amazon Aurora

  5. Bagaimana current_date Bekerja di PostgreSQL