簡體   English   中英

更新 SQLite 中已知行的最佳方法是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM