SQL 我设置了主键 然后主键就唯一了,不能添加重复项,很懊恼啊!

SQL 我设置了主键 然后主键就唯一了,不能添加重复项,很懊恼啊!,第1张

你设置了主键,就应该是唯一的,要插入重复项,就要删除主键约束,这个时候就要自己创造主键。

给你举个例子,在我们入学的时候,学校要把每个学生存入数据库,假如,学校跟你一样,刚开始觉得把学生名字作为主键也是可以得,于是,学生名字为主键,可是突然发现有的学生名字一样,就碰到了跟你一样的问题,学校是怎么解决的呢? 学校就创建了一个新的项作为主键,就是学号,所以你也应该创建这样一个永远不会重复的项来作为主键。

你可以先导入,并在数据库中创建一个行号列,记录每一行的行号。导入后,再对数据进行处理,设要判断重新的字段为Col1,设行号列为ID1,

设表名为TBL,那么代码如下:

DECLARE

@T

TABLE(

Col1

VARCHAR(1000

)

)

DECLARE

@C1

VARCHAR(1000)

INSERT

@T(

Col1

)

SELECT

Col1

FROM

TBL

GROUP

BY

Col1

HAVING

COUNT()

>

1

WHILE

((SELECT COUNT(*)FROM @T)>

0

)

BEGIN

SELECT

TOP

1

@C1

=

Col1

FROM

@T1

DELETE

@T

WHERE

Col1

=

@C1

DELETE

TBL

WHERE

Col1

=

@C1

AND

ID1

<

(

SELECT

MAX(

ID1

)

FROM

WHERE

Col1

=

@C1

)

END

在知道那个字段重复的情况

select StudentId from ScoreList group by StudentId having COUNT()>1

同理你这里只是多个字段而已 处理的方式一致

你大概理解有点偏差

如果你创建两个主键的话,

单一个主键的内容和其他行重复是不会提示的

只有两个主键的内容都重复才会有主键重复提示

例如列a,b

已有

a,b

1,2

2,3

现在键入

a,b

1,3

是不会提示重复的

如果键入

a,b

1,2

此时才会提示重复

如果想两个主键都不重复,建议使用约束条件

以上就是关于SQL 我设置了主键 然后主键就唯一了,不能添加重复项,很懊恼啊!全部的内容,包括:SQL 我设置了主键 然后主键就唯一了,不能添加重复项,很懊恼啊!、c#从excel导入sql数据库,主键重复则更新问题、sql server的数据,主键唯一,但是主键以外的数据有可能重复的情况,我怎么将重复的数据主键查询出来啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9731818.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存