怎样在数据库中防止插入一条完全相同的记录?

时间:2021-12-28 23:35:14
怎样在数据库中防止插入一条完全相同的记录?

11 个解决方案

#1


设置主键

#2


我重来都没有考虑过数据库表会有不设立主键的。

#3


插入前先 执行 select count(*) as a from youtable where f1=:p1 and f2=:p2  (主意,参数是你要求不重复的字段)如果返回的为0则没有这种记录否则有

#4


不知道为什么减我的信誉分,我前天还是100分呢,今天就99了

#5


如果你指的完全相同是每个字段都相同的话,就在数据库设置时,将这个表的主键取消才可以插入。

#6


to henreash(虫子) 你没有结贴,
我白送了别人100分,没办法,
if not select * from t1 where id=youid then begin
  insert into ...
end ;

#7


主键.

#8


我重来都没有考虑过数据库表会有不设立主键的

#9


在提交之前,查询数据库中是否存在相同的记录,有相同的记录则不执行提交操作,给出提示。

#10


this is old question abou database; if sqlserver
begin stran
insert 
if @@error<>0 and @@rowcount<1 
  begin
    rollback
    return
  end
commit stran

#11


设置为主键不是更好吗

#1


设置主键

#2


我重来都没有考虑过数据库表会有不设立主键的。

#3


插入前先 执行 select count(*) as a from youtable where f1=:p1 and f2=:p2  (主意,参数是你要求不重复的字段)如果返回的为0则没有这种记录否则有

#4


不知道为什么减我的信誉分,我前天还是100分呢,今天就99了

#5


如果你指的完全相同是每个字段都相同的话,就在数据库设置时,将这个表的主键取消才可以插入。

#6


to henreash(虫子) 你没有结贴,
我白送了别人100分,没办法,
if not select * from t1 where id=youid then begin
  insert into ...
end ;

#7


主键.

#8


我重来都没有考虑过数据库表会有不设立主键的

#9


在提交之前,查询数据库中是否存在相同的记录,有相同的记录则不执行提交操作,给出提示。

#10


this is old question abou database; if sqlserver
begin stran
insert 
if @@error<>0 and @@rowcount<1 
  begin
    rollback
    return
  end
commit stran

#11


设置为主键不是更好吗