首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

请问关于多人同时向一张表插入数据保证数据唯一性的有关问题

2012-10-31 
请教关于多人同时向一张表插入数据保证数据唯一性的问题。现在有一张表People,结构如下:idvarchar(50)主键n

请教关于多人同时向一张表插入数据保证数据唯一性的问题。
现在有一张表People,结构如下:
id varchar(50) 主键
name varchar(50) 姓名
cardID varchar(50) 身份证号

在插入数据的时候会首先在表里面查询身份证是否已经存在,如果存在就不插入进去。现在一个人批量向表里面插入没有问题,但是如果多个人同时向表里面导入的话就可能出现重复的数据。
我想怎么进行控制,一个人在操作表的时候防止其他人也操作表。从而达到不会出现多人同时导入相同数据的情况。


[解决办法]
把锁升级为PAG锁或者TAB锁
提高隔离级别
[解决办法]
alter table student add constraint un_name unique(name) --表STUDENT,唯一列为NAME



一个人在操作表的时候防止其他人也操作表。从而达到不会出现多人同时导入相同数据的情况 ====>>>>

数据库会自行解决的。。你不用担心,你只要按数据库的约束设置即可
[解决办法]
DECLARE @str int
select @str=count(*) from People where name ='xxxx' and cardID='xxxxxx'
if(@str > 0)
begin
--插入语句
end

把你得添加写成这样的 可以确保完全不可能有重复的出现
[解决办法]
双主键
[解决办法]
id varchar(50) 主键
cardID varchar(50) 身份证号
----------------------------------------
双主键



如果我要给身份证和姓名都设置约束,当两个都一样的时候就不能插入可以吗,具体怎么设置
----------------------------------------
这个需求应该说不符合客观现实,一个身份证号,不可能有两个姓名。
[解决办法]
事务 
防止数据重复的话 用复合主键.
[解决办法]
复合主键(id,cardID )或者在用select语句判断

热点排行
Bad Request.