2
我只是使用SQLAlchemy核心,並且無法獲取sql以允許我添加where子句。我希望這個非常通用的更新代碼能夠在我所有的表格上工作。意圖是這是對應於每個表的通用插入/更新函數的一部分。通過這樣做,它允許使用非常簡短的測試代碼和簡單的CLI實用程序,只需傳遞所有參數選項即可,而無需爲每個表單獨分配子命令。如何在SQLAlchemy中編寫生成更新
它需要更多的調整來實現它,但應該現在就做更新就好了。但是,儘管SQLAlchemy引用了生成查詢,但它並不區分選擇&更新。我已經回顧了SQLAlchemy文檔,基本SQLAlchemy,stackoverflow和幾個源代碼存儲庫,但沒有發現任何東西。
u = self._table.update()
non_key_kw = {}
for column in self._table.c:
if column.name in self._table.primary_key:
u.where(self._table.c[column.name] == kw[column.name])
else:
col_name = column.name
non_key_kw[column.name] = kw[column.name]
print u
result = u.execute(kw)
哪些失敗 - 它似乎並沒有認識到WHERE子句:
UPDATE struct SET year=?, month=?, day=?, distance=?, speed=?, slope=?, temp=?
FAIL
我無法找到這種方式建立一個更新的任何實例。任何建議?
謝謝 - 這工作完美。我想我很高興這是我的一個愚蠢的錯誤,而不是一個好工具中的錯誤。 :-) – 2012-02-16 05:03:17