有沒有人有答案?使用通配符或ILIKE進行更新的SQLAlchemy
我需要在更新statment使用ILIKE但它返回時,我嘗試這個錯誤:
InvalidRequestError: Could not evaluate current criteria in Python. Specify 'fetch' or False for the synchronize_session parameter.
此代碼:
meta.Session.query(i.mappedClass).filter(getattr(i.mappedClass, j).ilike("%"+userid+"%")).update({j:newUserId})
我可以使用類似REGEXP_REPLACE但它有點矯枉過正。我只是希望更新能夠適應不區分大小寫和兩端的空格!
這不僅僅是一種解決方法,而是一種解決方法。您的第一種方法基本上是直接在SQL後端執行SQL UPDATE語句,而解決方法是將每行都作爲模型對象加載到內存中,然後將其更新到內存中,然後將更改提交到SQL後端。如果這是一種維護類型的操作,我認爲第一種方法仍然會更好,特別是如果'newuserid'可以通過SQL後端的'userid'計算。 – van
我不想在每個循環上執行語句。第二種方式對我更好,因爲用戶無法通過更新中斷環路。 – JackalopeZero