我目前正在Flask中创建一个Web应用程序,并使用SQL-alchemy(不是烧瓶版本)来处理读取和写入MySQL数据库。
我有大约15个不同的表,每个表映射到一个不同的声明性类,但是应用程序仍处于测试阶段,所以这个数字可能会增加。
我想要一种方法来遍历每个表并在每一个表上运行相同的命令。这是更新功能的一部分,管理员可以在其中更改书名,此名称更改应反映在引用该书的所有其他表中。
有没有办法遍历所有的SqlAlchemy表?
谢谢!
答案 0 :(得分:1)
不完全确定你想要在这里实现什么,但如果你使用声明性基础,你可以尝试这样的事情:
tables = Base.__subclasses__()
for t in tables:
rows = Session.query(t).all()
for r in rows:
... do something ...
通过列出Base的子类来获取所有表。然后它依次查询每个表中的所有内容并循环选定的行。
但是,我不太明白你为什么要这样做。如何描述您的问题是您应该有一个Book表,如果他们想要参考书籍,所有其他人都会链接到它。这将是关系模型,而不是在每个表中拖动Books上的信息,并尝试手动管理它们。