我有一个简单的 Sqlite 表,其中包含电话号码和计数器的 2 列。我想根据还包含电话号码和计数器的 .csv 文件更新表格。如果数据库中存在该数字,则应通过现有计数器的总和 + 文件中的计数器进行更新。如果它不存在,则应使用文件中的值插入一条新记录。我剩下的一个问题是电话号码的第一个位置为零。当我填充数据库时,零被保留,(我可以手动选择并找到一个现有的数字,如 09999)当我从文件中获取值时,零被保留,但是当我尝试插入/更新时,我的 Ruby 代码中发生了一些事情插入不带前导零的新记录,因此 0999 在数据库中变为 999。没有前导零的数字被正确处理。
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)
知道我在这里做错了什么吗?最简单的解决方案是去掉前导零,但我更愿意做对。提前谢谢了。