PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

कैसे SQLAlchemy में अजगर में dataframe.to_sql रोलबैक करने के लिए?

to_sql . पर कॉल करने से पहले आप लेन-देन शुरू कर सकते हैं और फिर बाद में रोलबैक करें:

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. कई-से-अनेक SQL-कीमिया और Postgresql से हटाना

  2. Oracle से PostgreSQL:इसके साथ प्रारंभ/कनेक्ट करें

  3. स्प्रिंग बूट टेस्ट के लिए एंबेडेड पोस्टग्रेज

  4. PostgreSQL में किसी तालिका के स्कीमा विवरण को क्वेरी करें?

  5. plpgsql फ़ंक्शन में तालिका और स्तंभ नामों को तर्क के रूप में परिभाषित करें?