我在谷歌上有一個很好的搜索,但我似乎無法找到這個錯誤在我的情況下的答案。SQLAlchemy和模棱兩可的列名
我沒有做任何連接,我從字面上試圖從這個表中獲得所有。
所有其他查詢做工精細,但這似乎與此錯誤被搞亂了:
InvalidRequestError: Ambiguous column name 'INMPTL_WIW_BATAM_STG.pers_no' in result set! try 'use_labels' option on select statement.
型號:
batamStg = sa.Table("INMPTL_WIW_BATAM_STG", meta.metadata,
sa.Column("PERS_NO", sa.types.String(),primary_key=True),
sa.Column("FIRST_NAME", sa.types.String()),
sa.Column("LAST_NAME", sa.types.String()),
sa.Column("KNOWN_AS", sa.types.String()),
sa.Column("JOB_TITLE", sa.types.String()),
sa.Column("MANAGER_NAME", sa.types.String()),
sa.Column("MANAGER_ID", sa.types.String()),
sa.Column("MANAGER_COST", sa.types.String()),
autoload=True,
autoload_with=engine)
查看:
btm = meta.Session.query(model.BatamStaging).all();
有這裏只有一個名爲Pers_no的列和所有主鍵都是唯一的。
如果我嘗試將LAST_NAME設置爲主鍵,也會發生同樣的錯誤。
有沒有其他人有這個問題?覆蓋其通過使用autoload=True
反射列時
我不知道爲什麼它這樣做,但你有沒有嘗試過它建議和使用「use_labels」? – Matt
當你使用execute()時,是不是select語句的use_labels? – JackalopeZero
我相信你也可以啓用詳細的調試來查看SQLAlchemy正在生成哪些SQL語句,這可能會幫助你弄清楚爲什麼你會得到這個錯誤信息。 – larsks