博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
插入一条不重复的记录
阅读量:7046 次
发布时间:2019-06-28

本文共 598 字,大约阅读时间需要 1 分钟。

  hot3.png

场景

向一个数据库表中插入数据行,只有当要插入的数据行不存在时,才插入。插入时,需要保证一定不能向数据表中插入重复的数据行。

数据库表 names:

create table  names(

    id int identity(1,1) not null,

    name varchar(10) not null

)

names表中已有的数据行

id    name

1     zhangsan

2     meinv

实现

1 利用INSERT INTO ...SELECT 语句的原子性

declare varchar(10) ;

set @name='zhangsan';

insert into names

select   where not  exists (select 1 from names where name=) 

2 利用MERGE语句

declare varchar(10) ;

set @name='zhangsan';
MERGE namesAS target
 USING (SELECT  @Name) AS source ( Name)
    ON (target.name = source.name)      
      WHEN NOT MATCHED THEN    
          INSERT (Name)
          VALUES (source.Name);

 

转载于:https://my.oschina.net/yqz/blog/735296

你可能感兴趣的文章
《贵州省大数据发展报告(2016)》白皮书发布
查看>>
5G:开启英特尔增长的良性循环的钥匙
查看>>
Android的兼容性问题剖析
查看>>
Yahoo!雅虎董事会或将在今天敲定最终竞购报价
查看>>
龙尚科技借力中国移动布局物联网“大连接”
查看>>
域名选择的六大技巧
查看>>
法国研究:日本太阳能超越德国,居全球第二
查看>>
大数据时代,合作才能有效提升资源配置和使用效率
查看>>
当碎片化遇到集成化,CRM该何去何从
查看>>
IBM CEO向特朗普发公开信:支持税改 为促进就业建言
查看>>
Mission Impossible - 说说攻破Chrome究竟有多难
查看>>
他们黑了推特CEO的推特账号 只是为了证明自己
查看>>
解读Java环境变量配置
查看>>
在线可信联盟:IoT安全与全球变暖一样 形势严峻需要共担责任
查看>>
约8937亿元:台积电创下台湾企业市值最高纪录
查看>>
Bitbucket引入了强制双因素认证和IP白名单特性
查看>>
SDN控制器测试工具面世 RYU性能测试报告发布
查看>>
英国四高校携手开展智能传感器系统研究
查看>>
Oracle 12.2新特性掌上手册 - 第三卷 Core Improvements
查看>>
2017年人们对数据中心速度的需求有所增加
查看>>