Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

567
Vistas
La tabla truncada no funciona con el motor sqlalchemy del servidor SQL y pandas

Puedo consultar e insertar datos con éxito usando sqlalchemy y pandas:

 from sqlalchemy import create_engine import pandas as pd engine = create_engine('mssql://myserver/mydb?driver=SQL+Server+Native+Client+11.0?trusted_connection=yes')

Leer tabla temporal:

 sql_command = """ select top 100 * from tempy """ df = pd.read_sql(sql_command, engine) print df tempID tempValue 0 1 2

Adjuntar nuevos datos:

 df_append = pd.DataFrame( [[4,6]] , columns=['tempID','tempValue']) df_append.to_sql(name='tempy', con=engine, if_exists = 'append', index=False) df = pd.read_sql(sql_command, engine) print df tempID tempValue 0 1 2 1 4 6

Intenta truncar los datos:

 connection = engine.connect() connection.execute( '''TRUNCATE TABLE tempy''' ) connection.close()

Lea la tabla nuevamente, pero falló el truncamiento:

 df = pd.read_sql(sql_command, engine) print df tempID tempValue 0 1 2 1 4 6
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Tengo el mismo problema con pandas 0.19.2 y sqlalchemy 1.1.5 .

Como veo, la confirmación automática no se fuerza en autocommit engine.execute() cuando se ejecuta una instrucción TRUNCATE . Si lo fuerzo manualmente, TRUNCATE funciona perfectamente:

 from sqlalchemy.sql import text as sa_text engine.execute(sa_text('''TRUNCATE TABLE tempy''').execution_options(autocommit=True))

Es elegante que DROP funcione perfectamente sin forzar la autocommit ...

over 4 years ago · Santiago Trujillo Denunciar

0

Esto funcionó para mí:

 from sqlalchemy.orm import sessionmaker Session = sessionmaker(bind=engine) session = Session() session.execute('''TRUNCATE TABLE tempy''') session.commit() session.close()
over 4 years ago · Santiago Trujillo Denunciar

0

Aquí hay una solución completa basada en la pregunta, al usar sqlalchemy 1.1.15 en Windows, recibí errores al intentar implementar las otras soluciones:

 import sqlalchemy engine = sqlalchemy.create_engine('mssql://myserver/mydb?driver=SQL+Server+Native+Client+11.0?trusted_connection=yes') connection = engine.connect() truncate_query = sqlalchemy.text("TRUNCATE TABLE tempy") connection.execution_options(autocommit=True).execute(truncate_query)
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda