精华内容
下载资源
问答
  • 通常我们需要避免数据库重复插入操作的时候会给表设置主键或唯一索引,当插入重复数据的时候抛出异常,程序终止,但是这样也会存在一定的麻烦,所以就需要我们能尽量的避开或忽略异常。为了演示,我们新建一个User...

    通常我们需要避免数据库重复插入操作的时候会给表设置主键或唯一索引,当插入重复数据的时候抛出异常,程序终止,但是这样也会存在一定的麻烦,所以就需要我们能尽量的避开或忽略异常。为了演示,我们新建一个User测试表,包括字段id、username、sex、addr四个字段,其中主键为id(自增),同时对username字段设置唯一索引。

    一:insert ignore into

    即插入数据时,如果数据存在,则忽略此次插入,前提条件是插入的数据字段设置了主键或唯一索引

    insert ignore into user(username,sex,addr) values('LISI','man','dongbei');

    二:on duplicate key update

    即插入数据时,如果数据存在,则执行更新操作,前提条件是插入的数据字段设置了主键或唯一索引

    insert into user(username,sex,addr) values('LISI','man','dongbei')
    on duplicate key update sex = 'man',addr='dongbei';

    三:replace into

    即插入数据时,如果数据存在则删除在插入,前提条件是插入的数据字段设置了主键或唯一索引

    replace into user(username,sex,addr) values('LISI','man','dongbei')

    四:insert if not exists

    即insert into …select…where not exist…;这种方式适合没有设置主键或唯一索引的数据,当插入一条记录时首先判断是否存在这样一条记录,不存在插入,存在忽略操作

    insert into user(username,sex,addr) 
    	select 'LISI','man','dongbei' from user
    	where not exists 
    	(select username from user where username = 'LISI')
    展开全文
  • 避免重复插入数据库

    千次阅读 2018-03-22 14:43:36
    避免重复插入数据库use [RYPlatformDB] if not exists (select * from DataBaseInfo where DBInfoID = 1) INSERT [DataBaseInfo] (DBAddr, DBPort, DBUser, DBPassword) VALUES ( '127.0.0.1' , 1433 , 'sa', '...

    避免重复插入数据库


    use [RYPlatformDB]
    
    if not exists (select * from DataBaseInfo where DBInfoID = 1)
    	INSERT [DataBaseInfo] (DBAddr, DBPort, DBUser, DBPassword) VALUES ( '127.0.0.1' , 1433 , 'sa', 'fangyuan1793') 
    else
    	print '已经存在'
    go

    展开全文
  • 并发避免数据库插入重复数据

    千次阅读 2019-04-20 11:59:34
    一、怎么避免数据库插入重复数据 用的 SqlServer 可以用直接添加索引的方式 具体操作步骤见下链接 https://www.cnblogs.com/vuenote/p/9668410.html 二、清空数据表中的数据 1:truncate table table_name(要...

    一、怎么避免数据库插入重复数据

    用的 Sql Server 可以用直接添加索引的方式 具体操作步骤见下链接

    https://www.cnblogs.com/vuenote/p/9668410.html

    二、清空数据表中的数据

    1:truncate table table_name(要清空的数据表名称)  快且高效不会有日志记录

    2:delete from table_name

    三、获取当前时间、今天0点的时间

                //数字格式化 约定几位 前面补零
                int i = 26;
                string a = i.ToString().PadLeft(5,'0');
                Console.WriteLine(a);
                //系统当前时间
                DateTime currentTime = new DateTime();
                currentTime = DateTime.Now;
    
                Console.WriteLine(currentTime.ToString("yyyy-MM-dd HH:mm:ss.fff"));
                //系统当天零点时间
                Console.WriteLine( DateTime.Now.Date.ToString("yyyy-MM-dd HH:mm:ss.fff"));

       

    展开全文
  • mysql数据库避免重复数据插入

    万次阅读 2018-06-29 15:42:20
    修改sql语句在插入时 避免重复插入 网上看了几个博客都是设置唯一索引 使用ignore或者REPLACE INTO 或者ON DUPLICATE KEY UPDATE https://www.cnblogs.com/Eric-zhao/p/6655994.html http...

    mysql数据库中避免重复数据插入

    首先 数据库中已经存在重复数据 并且数据量很大 之前并没有设置重复字段为唯一索引
    需求:
    修改sql语句在插入时 避免重复插入

    网上看了几个博客都是设置唯一索引 使用ignore或者REPLACE INTO 或者ON DUPLICATE KEY UPDATE

    on duplicate key update

    如果数据存在会触发更新操作 执行后面语句的update
    INSERT INTO tb_addrbook(num,name,mobile) VALUE('1001','小李','13112345678') ON DUPLICATE KEY UPDATE name= '小李',mobile='13112345678'

    ON DUPLICATE KEY UPDATE 之后的语句不是条件判断 条件的判断会根据你的唯一索引来判断 触发update之后会执行 UPDATE之后的语句进行更新 如果update之后写的是条件判断的话 就会出现只能插入无法更新的操作

    replace into

    如果数据存在就删除再插入
    REPLACE INTO `student`(`name`, `age`) VALUES('Jack', 18);

    insert ignore into

    如果插入时 数据存在则忽略此次插入数据
    INSERT IGNORE INTO `student`(`name`, `age`) VALUES('Jack', 18);
    下面是参考链接:
    https://www.cnblogs.com/Eric-zhao/p/6655994.html

    https://blog.csdn.net/t894690230/article/details/77996355

    但是当你的数据库中数据存在重复 重复字段并没有设置唯一索引或者主键的时候上面的语法是无法使用的 后来发现使用 insert if not exists

    insert if not exists

    INSERT INTO TABLE (field1, field2, fieldn) SELECT 'field1','field2','fieldn'
    FROM
    表名
    WHERE
    NOT EXISTS (
    SELECT
    *
    FROM
    表名
    WHERE
    字段= ?
    )

    参考链接:
    https://blog.csdn.net/fly910905/article/details/79634483

    展开全文
  • oracle : insert when (not exists (select id from t_company_staff where name='赵国军4')) then into t_company_staff (name,status,APPLIEDTYPE) select '赵国军4',2,1 from dual; 或者 ...
  • 不想复制粘贴,转载:如何避免在MySQL数据库重复插入数据?
  • 避免重复插入,又不想折腾两回数据库连接操作 参考于:http://snowolf.iteye.com/blog/1568926 INSERT INTO table(column1,column2,column3 ...columnN) SELECT value1,value2,value3 ...valueN ...
  • 所有的方法都先不考虑性能问题,也不考虑业务,只看逻辑上能否达到去重复插入,因为第一,如果唯一性是必须要保证的,那么只能在先实现了,再去考虑优化;第二,如果能通过调整业务来规避,那我后面说的都是废话了...
  • 最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下...
  • mysql中 insert ignore 的使用示例如下:  INSERT IGNORE INTO `table_name` (`reportid`, `content`) VALUES (‘11111’,‘hello’);  需要注意的是,如果对应的表没有加唯一索引或者相应主键的话,insert ...
  • 第一条sql语句亲测,第二个没试过,一眼看上去,觉得第一个清楚简单明了,所以就没有看第二个了。 INSERT INTO table(column1,column2,column3 ...columnN) SELECT value1,value2,value3 ...valueN ...
  • 就是你在建数据表的时候就用上面的代码写到表里面,以后直接插入就行了啊看来你还是不懂.. 给你个样例吧..源码如下;测试成功.版本 2.支持库 sqlite3.支持库 spec.子程序 __启动窗口_创建完毕.局部变量 ku, Sqlite...
  • 主要介绍了MySql三种避免重复插入数据的方法,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
  • 最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下...
  • 数据库并发情况下避免插入重复数据的一个解决方法
  • <p>I am trying to check database before inserting data to avoid duplicate. I store the URLs in array, and inserting those URL in "link" column on a table. So first I am checking the column, istere...
  • 直到某时某刻,老大看到我写的脚本后笑着问了一句,你的脚本可否重复执行,我懵逼了,很显然不能,如果不能避免这种情况发生,比如进行插入操作,当下次其他同事来执行其脚本时可能会插入重复数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 462
精华内容 184
关键字:

数据库避免重复插入