[英]What is the best way to update a known row in SQLite?
例如,如果我想在 session 期間經常更新用戶的分數,有沒有比 - UPDATE score FROM [databaseName] WHERE name = [username] 更高效的方法
當先前找到值的位置時,我覺得我不應該持續搜索整個數據庫。
提前致謝
如果您對name
有索引,則不會搜索整個數據庫:
create index idx_<table>_name on <table>(name);
其中<table>
是您所指的表的名稱,而不是數據庫的名稱。
順便說一句,如果你想更新表,你會使用update
,而不是select
。 但是update
仍然可以使用索引。
您可以在此處使用屬性,您可以在需要時僅搜索和更新數據庫。
private int score;
public int Score
{
get
{
score = searchDatabase();
return score;
}
set
{
UpdateDatabase(value);
score = value;
}
}
Debug.Log(Score);
唯一想到的類似於您提到的值的位置,是具有您搜索的值的行的主鍵列的值。
因此,如果表中的主鍵是id
並且您只有name
,則可以查詢一次以獲取該行的id
:
SELECT id FROM tablename WHERE name = ?
然后在所有后續更新中使用該id
:
UPDATE tablename SET score = ? WHERE id = ?
這是進行更新的最快方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.