我有一個簡單的Sqlite表,其中有2列用於電話號碼和計數器。我想在包含電話號碼和計數器的.csv文件的基礎上更新表格。如果該數字存在於數據庫中,則應該使用文件中現有計數器+計數器的總和進行更新。如果不存在,則應使用文件中的值插入新記錄。 我剩下的一個問題是電話號碼在第一位置有一個零。 當我填充數據庫零保留,(我可以手動選擇並找到一個現有的數字,如09999)時,我從文件保留零值,但當我嘗試插入/更新的東西發生在我的Ruby代碼中的值插入一個沒有前導零的新記錄,所以0999在db中變爲999。沒有前導零的數字被正確處理。 我的代碼如下所示:用Ruby在Sqlite中插入/更新數字字符串(新手查詢)
rowArray=thisFile[k].split(';')
number = rowArray[0]
couplings = rowArray[1]
updString="INSERT OR REPLACE INTO Caller (Telno,count) VALUES (#{number},COALESCE((SELECT count + #{couplings} FROM Caller WHERE Telno=#{number}),# {couplings}))"
db.execute(updString)
任何想法,我做錯了什麼?最簡單的解決方案是放棄前導零,但我寧願做正確的。提前謝謝了。
感謝鮑羅丁,修復它,現在我明白了機制。 – user2630253