• 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 test 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');


    依次执行以下语句看结果:
    1、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



    2、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


    3、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


    4、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



  • 相关阅读:
    IntelliJ IDEA AndroidStudio SVN无法使用
    三极管封装
    STC等单片机一开机就停电模式烧写程序办法
    CC2541设置中断输入模式
    C# WinForm 多线程 应用程序退出的方法 结束子线程
    CorelDrawX8安装时提示已安装另一个版本
    Win10下Prolific USB-to-Serial Comm Port驱动提示不能使用
    Keil5创建GPIO
    SQL行列转置
    Excel复制粘贴假死
  • 原文地址:https://www.cnblogs.com/jeffen/p/6952557.html
Copyright © 2020-2023  润新知