Sqlalchemy基于新表创建和命名sql表的最佳实践

问题描述 投票:1回答:1

正如标题所示,我需要帮助理解如何将新表链接到现有的sqlalchemy类,如果这是正确的理解。

dbstring = 'sqlite:///db.db'
engine = create_engine(dbstring)
Session = sessionmaker(bind=engine)
session = Session()

Base = declarative_base()
metadata = MetaData

class SomeTable(Base):
    __tablename__ = 'somename'
    table_id = Column(Integer, primary_key=True)
    value_a = Column(Float())
    value_b = Column(String())
    value_c = Column(Float())

我想使用该类作为控制插入到未来表中的值的方法。有没有办法使用sqlalchemy以类似于以下格式发出create table命令:

table_named_foo = SomeTable(value_a = 12.3, value_b = 'bar', value_c = 45.6)
session.commit(table_named_foo)
database python-3.x sqlite sqlalchemy
1个回答
1
投票

IIUC我认为问题在于为什么你能够将类型字符串的对象插入到定义为Float的列中,反之亦然。这是因为SQLLite使用动态类型,并允许您将任何类型放入列中,无论它是如何定义的。

有关更多信息,请参阅此处:https://www.sqlite.org/faq.html#q3

试试这是在PostgreSQL中你可能会得到你期望的行为

© www.soinside.com 2019 - 2024. All rights reserved.