标题:插入重复数据问题
只看楼主
cydesign
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-11-2
 问题点数:0 回复次数:7 
插入重复数据问题
例如,有一个表[id,name,class](id递增)
首次我插入的时候,生成一列表

但是如果我在名字表加入了一个name,再次插入时,他再插一次原来已经有的数据(name和class相同,只是id不同)才新插我新增的name和class

我可以在SQL里面设置,使之自动判别如果插入的同一行的name和class 与之前已插入的已经重复,就不再插入,只插入新数据吗?
搜索更多相关主题的帖子: SQL 数据 name class 列表 
2006-12-19 12:02
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
得分:0 
这个一般都是用服务端程序实现,如果非要在数据库实现,可以用触发器。

老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2006-12-19 12:14
cydesign
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-11-2
得分:0 
触发器?能具体说说么?
2006-12-19 14:01
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 

存储过程
create proc [InsertData]
(
@Name varchar(15),
@Class varchar(15)
)
as
begin
if((select count(*) from table1 where name=@Name)>0)
print '已经存在用户名为 '+ @Name +' 的记录'

else
insert into table1 values(@Name,@Class)
end
go

[此贴子已经被作者于2006-12-20 12:51:38编辑过]


飘过~~
2006-12-19 14:12
cydesign
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-11-2
得分:0 
以下是引用bygg在2006-12-19 14:12:27的发言:

存储过程
create proc [InsertData]
(
@Name varchar(15),
@Class varchar(15)
)
as
begin
if((select count(*) from table1 where 0">name=@Name)>0)
print '已经存在用户名为 '+ @Name +' 的记录'

else
insert into table1 values(@Name,@Class)
end
go

这条语句有错吗?我看不明白这里where 0">name=@Name)>0,这是什么意思?
问题是怎么把name列的数据与新插入的数据比较?

2006-12-19 21:08
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
得分:0 

新插入的数据会被存放在inserted表中,建议去看看触发器 ,这问题用触发器比较简单


26403021 sql群 博客 blog./user15/81152/index.shtml
2006-12-19 21:29
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
以下是引用cydesign在2006-12-19 21:08:52的发言:

这条语句有错吗?我看不明白这里where 0">name=@Name)>0,这是什么意思?
问题是怎么把name列的数据与新插入的数据比较?

不好意思,开始写错了,没注意看,现在改过了,试试看可以不?


飘过~~
2006-12-20 12:52
cydesign
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-11-2
得分:0 
以下是引用bygg在2006-12-20 12:52:19的发言:

不好意思,开始写错了,没注意看,现在改过了,试试看可以不?

没关系。谢谢你这么热心解答问题!

2006-12-20 22:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-110520-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.508111 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved