正如标题所示,我需要帮助理解如何将新表链接到现有的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)
IIUC我认为问题在于为什么你能够将类型字符串的对象插入到定义为Float
的列中,反之亦然。这是因为SQLLite使用动态类型,并允许您将任何类型放入列中,无论它是如何定义的。
有关更多信息,请参阅此处:https://www.sqlite.org/faq.html#q3
试试这是在PostgreSQL中你可能会得到你期望的行为