数据库表中插入重复数据的处理
2010-07-08 19:45
295 查看
想往表中插入一条数据,如果表中没有该条数据才插入,如果已经存在该条数据就不插入。
该怎么处理?
一个比较笨的办法,是先用select查找表中是否已经存在该数据,然后再根据返回的结果决定是否insert。这样做一来效率会降低,二来,如果在 select和insert执行期间,又有其他用户进行了insert操作,插入了一条相同的数据,仍然会出错。
正确的解决方法是:
首先,在创建表时,将不需要重复的字段设置为unique,然后在插入时,使用insert ignore语句。
例如:(数据库用的是mysql5)
创建一张表用来存储用户:
create table user_info
(
uid mediumint(10) unsigned NOT NULL auto_increment primary key,
last_name char(20) not null,
first_name char(20) not null,
unique ( last_name, first_name)
);
插入数据:
insert ignore into user_info (last_name,first_name) values ('x','y');
//这样一来,如果表中已经存在last_name='x'且first_name='y'的数据,就不会插入,如果没有就会插入一条新数据。
该怎么处理?
一个比较笨的办法,是先用select查找表中是否已经存在该数据,然后再根据返回的结果决定是否insert。这样做一来效率会降低,二来,如果在 select和insert执行期间,又有其他用户进行了insert操作,插入了一条相同的数据,仍然会出错。
正确的解决方法是:
首先,在创建表时,将不需要重复的字段设置为unique,然后在插入时,使用insert ignore语句。
例如:(数据库用的是mysql5)
创建一张表用来存储用户:
create table user_info
(
uid mediumint(10) unsigned NOT NULL auto_increment primary key,
last_name char(20) not null,
first_name char(20) not null,
unique ( last_name, first_name)
);
插入数据:
insert ignore into user_info (last_name,first_name) values ('x','y');
//这样一来,如果表中已经存在last_name='x'且first_name='y'的数据,就不会插入,如果没有就会插入一条新数据。
相关文章推荐
- 数据库表中插入重复数据的处理
- 数据库表中插入重复数据的处理
- 对于分页时,若数据库的数据不断更新,不让前台显示脏数据(同一条数据重复显示)的处理方式
- 删除重复记录,保留数据库中最新插入的数据(或最早插入的数据)
- sqlite 数据库 对 BOOL型 数据的插入处理
- 在进行数据插入数据库操作时,对于id的处理
- 数据库,唯一索引,重复数据处理
- C# 多线程并发处理数据库数据,发送信号等待处理完统一插入.(转)
- VB .NET 读取数据库数据处理后再循环插入数据库
- 插入和显示数据库中的图片(处理二进制数据)
- JSP get 请求 Tomcat 服务器 插入数据到数据库中文乱码处理
- postgresql数据库中对重复数据的处理
- 数据库的连接以及处理重复数据
- oracle处理重复插入数据
- 插入和显示数据库中的图片(处理二进制数据)
- ios-如果一次性向数据库中插入大量数据,应该如何处理
- C# 多线程并发处理数据库数据,发送信号等待处理完统一插入
- 数据库并发插入避免重复数据的问题
- 向数据库插入的数据处理
- Java防止重复数据多次调用接口导致数据库插入重复记录