sql违反了primary+key约束怎么解决?

sql违反了primary+key约束怎么解决?,第1张

你好,提供两个解决方案,供参考:

数据库层面避免。如果要完全避免主键约束,并且业务逻辑设计允许该表不唯一,可以删除主键索引,建立普通索引。

从代码逻辑层面控制,这是普遍做法。插入数据据之前,先查询数据是否存在,不存在才插入,或者报主键冲突异常,返回页面数据已存在提示。

你的【手机号码】字段中有不符合【你建的约束的数据】,把这样的数据删掉再建就可以了,为了方便起见。

1、先把数据转存到另外一个表中:

select * into tmp from 号码纪录

2、删除原表数据

truncte table 号码纪录

3、增加check约束

alter table 号码纪录 add constraint ck_手机号码 check(手机号码 like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]');

4、把符合条件的数据导回

insert into 号码纪录 select * from tmp where tmp.手机号码 like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

5、删除临时表

drop table tmp

---

以上,希望对你有所帮助。

如果您的数据库中已经存在重复的user,那么您想追加unique

constraint的时候是会报错的。可以查一下是否您的这个表是否已经存在重复的user,先清理一遍,保证没有重复的user,再加唯一约束。


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

原文地址: http://outofmemory.cn/bake/11959499.html

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

发表评论

登录后才能评论

评论列表(0条)

保存