问题:表中存在primary Key ,但是还是有重复项出现(不考虑程序过滤)

例如:

ArticleTags表(是Article和Tags的关联表)

id(primary key)         tag_id         article_id

1                                327             1234

2                                327             1234

3                                327             1234

其实SQL Server在表机构上可以约束这种情况发生——UNIQUE

1.给独立的字段加UNIQUE约束

CREATE TABLE ArticleTags
(

id   int NOT NULL Primary Key,

tag_id  int NOT NULL,

article_id  int NOT NULL,

UNIQUE(tag_id) ,

UNIQUE(article_id)
)

这个表中tag_id和article_id各自都不允许重复,当然这就不能满足关联表的需求

如果我们要求不能有相同的关联关系存在,那么可以这样

CREATE TABLE ArticleTags (

id   int NOT NULL Primary Key,

tag_id  int NOT NULL,

article_id  int NOT NULL,

Constaint  UniqueRefence  Unique(tag_id,article_id)

)

同样,在建完表后添加UNIQUE约束

ALTER TABLE ArticleTags
ADD UNIQUE (tag_id)

ADD UNIQUE (article_id)

ALTER TABLE ArticleTags
ADD CONSTRAINT UniqueRefence UNIQUE (tag_id,article_id)

撤销UNIQUE约束

ALTER TABLE ArticleTags
DROP CONSTRAINT UniqueRefence

为什么在撤销里只写了一个关联的UNIQUE约束,没有独立的?

独立的貌似要用 DROP CONSTRAINT wbsdfwer,是数据库自己给他的一个特殊奇怪的id或者名字,当你在重复插入数据的时候,SQL会提示你xx约束blablabla~~~

望各位大神指点~~

转载于:https://www.cnblogs.com/apriljq/archive/2013/06/10/3131085.html

阻止表中出现重复项——SQL UNIQUE 约束相关推荐

  1. mysql删除数据表中冗余数据_删除MySQL数据表中的重复项

    常常遇到这样去重的问题,或者由于数据库平时每日添加之后,难得有重复,数据变得冗余,这时就需要对数据表进行清理,去除重复的数据. 但是,所谓重复,有几层意思,一种是整行重复,每列的值都相同的,另一种是一 ...

  2. Excel表中删除重复项的详细操作

    1,选中自己要删除重复项的区域, 2.点击工具栏  ->数据-->删除重复项. 3.此时会弹出对话框,选择""扩展选定区域"". 4.此时会弹出一个 ...

  3. 【指导】如何在 excel 数据表中去重重复项计数?

    如题,默认的 excel 数据透视表的值选项里只有计数.求和等简单直接的计算方法,但是如果是重复值计数,就爱莫能助了. 网上有很多方法,辅助列.sql.PowerPivot插件,都太麻烦了,我还是比较 ...

  4. SQLServer 2005删除无主键表中的重复项

    先把表拷到一个临时表中,然后保留表结构删除其内容,把临时表中的内容拷回来,删除临时表. select   distinct   *   into   tmp   from   test   trunc ...

  5. 利用T-SQL处理SQL Server数据库表中的重复行

    Duplicate rows in a SQL Server database table can become a problem. We will see how we can find and ...

  6. sql删除表中重复记录_SQL从SQL表中删除重复行的不同方法

    sql删除表中重复记录 This article explains the process of performing SQL delete activity for duplicate rows f ...

  7. R语言unique函数计算数据对象(vector、dataframe)的unique独特值:unique函数从vector向量、dataframe中删除重复项、删除dataframe重复行

    R语言unique函数计算数据对象(vector.dataframe)的unique独特值:unique函数从vector向量.dataframe中删除重复项.删除dataframe重复行 目录

  8. 如何删除表中的重复记录?等等常用SQL语句的积累

    1.如何删除表中的重复记录?(这里指记录的每个字段都要相同) select distinct * into #temp from tab delete tab insert tab select * ...

  9. 编写一个 SQL 查询,来删除 Person表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。

    题目 编写一个 SQL 查询,来删除 Person表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小的那个. Id Email 1 john@example.com 2 bob@example.c ...

最新文章

  1. python-range用法
  2. 如何在eclipse中修改jsp默认编码
  3. java web微服务是什么_java微服务是什么
  4. win7下删除提示没权限删除文件的方法
  5. CSDN-Markdown基本语法
  6. java8-4 多态的练习以及题目
  7. 教师计算机网络培训工作总结,教师培训工作的自我总结
  8. python精确计时_PYTHON在WINDOWS下高精度计时的体会
  9. Restic 跨平台加密备份工具
  10. tts文字转语音_Android文字转语音(TTS)
  11. EnableViewState=false无效
  12. cascading基本概念
  13. 设计模式 — 简单工厂模式(Simple Factory)
  14. 苹果备份删除有影响吗_苹果官网崩了,对手机的销售有什么影响吗?
  15. 如何让360浏览器打开网页默认为“极速模式”
  16. 夜神模拟器之burp抓包
  17. Material Design系列之BottomNavigationView详解
  18. vue版本的仿京东放大镜代码还有原生js版本的。(组件封装
  19. 微信3d小游戏(three)-逻辑设计与场景添加
  20. Exchange Server 2010部署(一)部署Windows Server 2008 R2域控制器

热门文章

  1. UOJ228:基础数据结构练习题——题解
  2. javascript 错误与调试
  3. Rhel7 Ldap为本地用户认证方式,设置域、服务器位置和下载key
  4. 兼容IE,chrome 等所有浏览器 回到顶部代码
  5. http://www.cnblogs.com/qtqq/p/5271164.html
  6. pymysql的相关操作
  7. SQL小技巧系列 --- 行转列合并
  8. 【直播资料下载】Python 系列直播——深入Python与日志服务,玩转大规模数据分析处理实战第二讲...
  9. Springsecurity之AccessDecisionManager
  10. final 修饰方法参数