加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite3的故事

发布时间:2020-12-12 20:30:45 所属栏目:百科 来源:网络整理
导读:主要还是在数据库内容同步的时候遇到的问题,服务器端也不标识变化发生,那客户端用sqilite3,本来就是要实现目的,udpate不成功,我就用insert。 自然想到去拿那个影响的record数目。 但看来大家多推荐replace,这个replace是不是要知道原来sql的primarykey

主要还是在数据库内容同步的时候遇到的问题,服务器端也不标识变化发生,那客户端用sqilite3,本来就是要实现目的,udpate不成功,我就用insert。

自然想到去拿那个影响的record数目。


但看来大家多推荐replace,这个replace是不是要知道原来sql的primarykey的值啊,可我偷懒,没设置,全用了一个自增长的id,这下。。。


因为数据库建表时没有指定primary key,所以replace语句不正常.


option 1 would look like: //基本来说,目前的数据结构,表,应该可以做到用replace or insert。。。。。

NSString * update =[NSString stringWithFormat:@"INSERT OR REPLACE INTO LIST (COUNT,NAME,DATE,IDNUM) VALUES (?,?,?)"]; 

option 2 would look like: //至于效率问题,我们需要找个同学测试下。。。。

"SELECT * FROM LIST WHERE IDNUM = '%i'",accessID integerValue]]; sqlite3_stmt stmt; int rc  sqlite3_prepare_v2(db[ UTF8String],0)"> -1& nil);ifrc == SQLITE_OK){   sqlite3_step SQLITE_ROW     "UPDATE LIST SET COUNT = ?,NAME = ?,DATE = ?,IDNUM = ? WHERE IDNUM = '%i'"   }else    }
先上下面的方案吧:)

为了减少网络流量,请问我可以只拿房间GUID和状态两个字段么,呵呵。。。。



The MIN/MAX optimization===============

Queries of the following forms will be optimized to run in logarithmic time assuming appropriate indices exist:

  SELECT MIN(x) FROM table;
  SELECT MAX(x) FROM table;

In order for these optimizations to occur,they must appear in exactly the form shown above - changing only the name of the table and column. It is not permissible to add a WHERE clause or do any arithmetic on the result. The result set must contain a single column. The column in the MIN or MAX function must be an indexed column.

所以我们的错误就在

select max(dd) as x,min(dd) as y fromddwhere state=4//本来测试没有看where,后来用了where发现不对了。这。。。。!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读