【问题标题】:SQLAlchemy Select statement - SQL Syntax ErrorSQLAlchemy Select 语句 - SQL 语法错误
【发布时间】:2010-09-13 01:00:01
【问题描述】:

我已经创建了一个表(MySQL 5.1)

from sqlalchemy import *

def get():
    db = create_engine('mysql://user:password@localhost/database')
    db.echo = True
    metadata = MetaData(db)

    feeds = Table('feeds', metadata,
            Column('id', Integer, primary_key=True),
            Column('title', String(100)),
            Column('link', String(255)),
            Column('description', String(255)),
    )

    entries = Table('entries', metadata,
            Column('id', Integer, primary_key=True),
            Column('fid', Integer),
            Column('url', String(255)),
            Column('title', String(255)),
            Column('content', String(5000)),
            Column('date', DateTime),
    )
    feeds.create()
    entries.create()

但是当我尝试查询它时:

from sqlalchemy import *
db = create_engine('mysql://user:password@localhost/database')
metadata = MetaData(db)
feeds = Table('feeds', metadata)
s = feeds.select()
result = db.execute(s)

我在 result = db.execute(s) 行收到一个错误,指示如下:

sqlalchemy.exc.ProgrammingError: (ProgrammingError) (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM feeds' at line 2") 'SELECT  \nFROM feeds' ()

我显然是 SQLAlchemy 的新手,我不知道自己做错了什么,尽管我在网上搜索了每个教程并更改了上百万次。有什么帮助吗?

【问题讨论】:

    标签: python sql sqlalchemy


    【解决方案1】:

    我怀疑Table.select() 仅用于选择特定列。对于SELECT *expression language tutorial 使用以下语法:

    from sqlalchemy.sql import select
    s = select([feeds])
    result = db.execute(s)
    

    【讨论】:

    • 有什么进展吗?如果您不回应我们的第一个建议,我们真的无法为您提供更多帮助。
    【解决方案2】:

    您的 feeds.select() 调用中可能缺少某些内容,我会再看一下此函数的 API 文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      • 2014-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多