我需要驗證資料庫中物體的存在。
If db_is_team_exist(team_id):
If db_is_user_exist_by_id(user_id):
ok
else:
raise ObjectDoesNotExist("user", user_id)
else:
raise ObjectDoesNotExist("team", team_id)
查詢資料庫中的函式:
def db_is_team_exist(team_id: str) -> bool:
cursor.execute(f "SELECT COUNT(1) FROM teams WHERE id='{team_id}';")
return bool(cursor.fetchone()[0])
def db_is_user_exist_by_id(user_id: str) -> bool:
cursor.execute(f "SELECT COUNT(1) FROM users WHERE id='{user_id}';")
return bool(cursor.fetchone()[0])
有時這些檢查太多,我無法承受資料庫上的這種負載。有沒有辦法通過一個查詢來檢查不同表中是否存在兩個以上的物體?或者以其他方式減少資料庫中的查詢數量?
uj5u.com熱心網友回復:
從技術上講,您可以使用單個查詢,例如:
SELECT 1 WHERE
EXISTS (SELECT 'x' FROM teams WHERE id='{team_id}')
AND
EXISTS (SELECT 'x' FROM users WHERE id='{user_id}')
請使用適當的引數化查詢。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/415495.html
標籤:
