繁体   English   中英

Sqlalchemy 覆盖表中的数据

[英]Sqlalchemy overwrite data in table

我有问题 。 此代码覆盖表中的数据。 我想将行添加到现有表中而不删除现有行。

class Ordering(BaseModel):
    __tablename__ = 'ordering'
    id_z = Column(Integer, primary_key=True)
    family = Column(String(100), nullable=False)
    name = Column(String(100), nullable=False)
    phone = Column(String(15), nullable=False)
    id_m = Column(Integer, ForeignKey('menu.id_m'))


class Menu(BaseModel):
    __tablename__ = 'menu'
    id_m = Column(Integer, primary_key=True)
    dish = Column(String(100), nullable=False)
    quantity = Column(Integer, nullable=False)
    measurment = Column(String(10), nullable=False)
    relation = relationship('Ordering', backref='Menu')


BaseModel.metadata.create_all(base)
while True:
    BDSesion = sessionmaker(bind=base)
    session = BDSesion()
    if not session.query(Menu).count():
      session.add(Menu(dish=input('dish'), quantity=input('quantity'),measurment=input('measurment')))

    n = input("Please enter 'q' to finish any other key next:")
    if n.upper().strip() == 'Q':
        session.commit()
        session.close()
        break

我使用 Pandas 读入数据,并且可以附加到这样的表中:

import pandas as pd
import sqlalchemy
import urllib

cs = 'DRIVER={ODBC Driver 17 for SQL Server};SERVER=' + server + ';Trusted_Connection=no;uid=' + uid + ';pwd=' + pwd + ';'

params = urllib.parse.quote_plus(cs)

engine = sqlalchemy.create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)

df.to_sql('tablename', engine, schema='schema_name', index=False, if_exists='append')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM