【问题标题】:Union statement statement in SQLAlchemySQLAlchemy 中的 Union 语句
【发布时间】:2022-01-04 20:32:43
【问题描述】:

我有多个大型 csv 文件,我想将它们合并并存储在数据库中,以便将来在 Pandas 中使用。我使用 Pandas 阅读它们并将它们作为单独但相似的表存储到 Sqlite 数据库中。

我想通过 SQL 字符串(垂直)合并行,然后在 pandas 中使用它们进行更多分析。我想知道当我们处理大文件并且内存有限(16GB)时,这是否是在熊猫和 SQL 之间来回切换的好习惯?

另外,我的代码给了我一个错误,我不确定是否存在语法问题或更重要的问题。

from sqlalchemy.sql import text
engine = create_engine('sqlite:///C:\\master.db', echo=False)
string = text("""SELECT * INTO Flows FROM (select * from "f2007-08" UNION select * from "f2009-10")""")
engine.execute(string)

【问题讨论】:

  • INSERT INTO Flows SELECT ... 是使用查询结果插入表的正确语法。
  • 我删除了* bur 收到相同的错误: OperationalError: (sqlite3.OperationalError) near "INTO": syntax error [SQL: SELECT INTO Flows FROM (select * from "f2007-08" UNION select * from "f2009-10")](此错误的背景:sqlalche.me/e/13/e3q8
  • * 无关。你的整个语法都是错误的。
  • 不是SELECT INTO,是INSERT INTO xxx SELECT

标签: python sql pandas sqlite sqlalchemy


【解决方案1】:

这不是将查询结果插入另一个表的正确语法。

我是INSERT INTO tablename SELECT ...

string = text("""
    INSERT INTO Flows 
    select * from "f2007-08" 
    UNION 
    select * from "f2009-10" 
""")

【讨论】:

    猜你喜欢
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多