我试图在for循环中从几个不同的表中选择数据列,每个表名都以数字开头,标题为0\u training\u market到155\u training\u market。要在sql语句中使用以数字开头的表,我必须在标题周围使用一对额外的引号,这只会将变量转换为字符串,而不会读取实际的变量。这是我的代码和错误:
for j in list(range(156)):
generation = str(j)+'_training_market'
energy_source = db.query(" SELECT energy_source FROM " + generation + " WHERE id < 100 ORDER BY id ")
quantity = db.query(" SELECT quantity FROM " + generation + " WHERE id < 100 ORDER BY id ")
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.SyntaxError) syntax error at or near "0"
LINE 1: SELECT energy_source FROM 0_training_market WHERE id < 100 ...
^
[SQL: SELECT energy_source FROM 0_training_market WHERE id < 100 ORDER BY id ]
我不知道如何解决这个问题,所以任何帮助都是感激的。谢谢
1条答案
按热度按时间zqdjd7g91#
postgresql需要在名称不正确的对象周围使用双引号: