MySQL基础----数据重复判断

    本人工作中的实际应用.在采集数据的时候,要求数据采集以后,不能重复.同时也要求有多个实例同时运转,保证数据采集的连续性.因此总结了一下,做成了如下的小试验.核心代码如下:
表结构:只有3个字段
id,name,password
CREATE TABLE `tt` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `password` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


sql语句
1)推荐
insert ignore into tt(name,password) values('phl','123')

2)不推荐,因为insert的时候select,会锁定select的表
insert into tt(name,password) select 'phl','123' from dual where not exists(select * from tt where name='phl' and password='123')


这个SQL语句的含义是,如果插入的数据 name='phl',password='123'不存在,则执行插入;

补充:
方法1里面,之所以没有过滤。是因为没有建立name与password的联合主建;

你可能感兴趣的:(数据结构,oracle,sql,mysql,SQL Server)