sqlite 怎么防止数据重复插入

sqlite 怎么防止数据重复插入,第1张

在sqlite中,可以用以下方法防止插入重复数据

设置表的联合主键

在INSERT语句中添加OR IGNORE,即可。

示例如下:

insert OR IGNORE into PDA_Test (DeviceID,MethodName) values('1112','测试原有')

sqlite避免重复插入数据

SQLite 数据库常用约束如下:

NOT NULL - 非空

UNIQUE - 唯一

PRIMARY KEY - 主键

FOREIGN KEY - 外键

CHECK - 条件检查

DEFAULT - 默认

用insert语句插入数据,为避免重复插入又不打断数据处理。

首先要避免重复插入,就必须在插入时引发冲突。在表中设置了id字段,该字段为UNIQUE属性,当插入的id已存在时引发冲突。

我给你提供个思路,不要光从sql角度考虑,从java语言提供的异常机智考虑会更简单.因为我在对数据库进行轮询的时候也经常遇到这样的问题.

最好的解决之道就是如果不存在就插入,如果重复,就跳过.

//将插入语句放在循环体中

for(int i=0i<ni++){

try{

//............省略具体插入代码

//插入的代码块,如果插入异常,将会发生异常 ,并被catch捕捉,但程序不做任何处理.继续循环下面一条!!所有不存在的数据将会被正常插入.所有插入异常将会被忽略!

}catch(Exception e){

}

}

---这个解决之道就是正常则插入,异常则跳过,满足了你的要求的.呵呵,就是你想要的答案吧.

不知道你用的是什么数据库,以Mysql为例,有几种方式可以去重

1. insert ignore into ...   -- 这种方式当有重复主键的时不会更新数据

2. insert into ... on duplicate key update

3. replace into ...

既然是数据备份,理论上不应该会出现你说的问题,想着应该就是你备份数据的方式有问题

建议你再学习一下如何去实现数据库数据的备份

一般来说可以 数据库设置主从备份,这样数据的同步根本不用人为的去管理,自动就实现了


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6426106.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-22
下一篇 2023-03-22

发表评论

登录后才能评论

评论列表(0条)

保存