2010-09-13 2 views
2

Я создал таблицу (MySQL 5,1)SQLAlchemy Выберите оператор - SQL Синтаксис ошибки

from sqlalchemy import * 

def get(): 
    db = create_engine('mysql://user:[email protected]/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:[email protected]/database') 
metadata = MetaData(db) 
feeds = Table('feeds', metadata) 
s = feeds.select() 
result = db.execute(s) 

Я получаю сообщение об ошибке на результат = дБ линия .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, и я понятия не имею, что я делаю неправильно, несмотря на ВГА каждый раз изучал каждый учебник в Интернете и менял это миллион раз. Любая помощь?

ответ

1

Я подозреваю, что Table.select() предназначен только для выбора определенных столбцов. Для SELECT *, то expression language tutorial использует этот синтаксис вместо:

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

Любой прогресс? Мы не можем вам больше помочь, если вы не ответите на наши первые предложения. – ssokolow

0

что-то не хватает, вероятно, из вашего вызова feeds.select(), я бы еще раз посмотрел документацию API для этой функции.

Смежные вопросы