sqlite "insert or replace" 和 "insert or ignore" 用法

insert or replace:若是不存在就插入,存在就更新
insert or ignore:若是不存在就插入,存在就忽略
只對UNIQUE約束的字段起做用。

舉例:
建表:
CREATE TABLE TEST(id BIGINT, name text, birthday datetime, PRIMARY KEY(id, name));
或者CREATE TABLE TEST (id BIGINT, name text, birthday datetime, UNIQUE(id, name));
插入記錄
insert into tes t values (10,'aa','2010-01-01 01:01:01');
insert into test values (11,'bb','2011-01-01 01:01:01');
insert into test values (12,'cc','2012-01-01 01:01:01');


依次執行如下語句看結果:
一、insert or replace into test values (10,'jj','2016-01-01 01:01:01');//不存在,插入
id                   name               birthday                    
----------   ----------   -------------------
10                   aa                   2010-01-01 01:01:01
11                   bb                   2011-01-01 01:01:01
12                   cc                   2012-01-01 01:01:01
10                   jj                   2016-01-01 01:01:01



二、insert or replace into test values (11,'bb','2016-01-01 01:01:01');//存在,更新
id                   name               birthday                    
----------   ----------   -------------------
10                   aa                   2010-01-01 01:01:01
12                   cc                   2012-01-01 01:01:01
10                   jj                   2016-01-01 01:01:01
11                   bb                   2016-01-01 01:01:01


三、insert or ignore into test values (12,'xx','2017-01-01 01:01:01');//不存在,插入
id                   name               birthday                    
----------   ----------   -------------------
10                   aa                   2010-01-01 01:01:01
12                   cc                   2012-01-01 01:01:01
10                   jj                   2016-01-01 01:01:01
11                   bb                   2016-01-01 01:01:01
12                     xx                     2017-01-01 01:01:01


四、insert or ignore into test values (12,'xx','2018-01-01 01:01:01');//存在,忽略
id                   name               birthday                    
----------   ----------   -------------------
10                   aa                   2010-01-01 01:01:01
12                   cc                   2012-01-01 01:01:01
10                   jj                   2016-01-01 01:01:01
11                   bb                   2016-01-01 01:01:01
12                   xx                   2017-01-01 01:01:01

相關文章
相關標籤/搜索