字段设为不可重复,添加出错,之后的数据不会添加进去

wzx2275067_2018 2018-04-19 03:07:48
表 :[TM_User]
字段:[Group_ID] ,[User_Name]


[User_Name] 设为主键,不允许重复
添加重复的[User_Name] 的时候,会出错提示,之后的数据就不会添加进去
这个该怎么解决?
...全文
1739 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2018-05-01
  • 打赏
  • 举报
回复
-- 你这个不太合理
-- 一般的做法:
-- 1. userId 作为主键
-- 2. user_name 建立唯一索引
-- 3. user_name 在网页(或其它应用客户端)提交时,
--    先判断是否有重复,如果重复则提示重复,让用户重新输入
CREATE TABLE dbo.[TM_User](
	userId BIGINT IDENTITY(1,1) PRIMARY KEY,	
	[Group_ID] INT,
	[User_Name]	NVARCHAR(20)
)
GO
CREATE UNIQUE INDEX ix_tm_user_user_name ON tm_user([user_name])
  • 打赏
  • 举报
回复
insert [TM_User] ([Group_ID] ,[User_Name]) select 'zhangsan','G01' where not exists(select 1 from where [TM_User]='zhangsan') 这样重复姓名就直接不插入
dsfsdfddf 2018-05-01
  • 打赏
  • 举报
回复
主键一般是int或者guid类型的,尽量使用无意义字段,如果要验证不允许重复,看你看哪里验证,前端,后台,数据库等都是可以验证的。
星粉 2018-04-30
  • 打赏
  • 举报
回复
可以重新加一个字段,设置为主键,name个人不建议设置为主键,名字重复在所难免,所以用其他字段控制数据的唯一
二月十六 2018-04-19
  • 打赏
  • 举报
回复
楼上说的都对
卖水果的net 2018-04-19
  • 打赏
  • 举报
回复
[User_Name] 设为主键 , 这个不科学,干掉这个主键,建立一个新的。用 ID 列
LittleMan_LC 2018-04-19
  • 打赏
  • 举报
回复
既然user_Name设为主键了,为什么还要重复? 如果Name重复的话,就不要设为主键。 为什么不把Id设为主键
繁花尽流年 2018-04-19
  • 打赏
  • 举报
回复
应用端去控制,插入前先判断一下是否存在。 这种动作一般是不放在数据库来做的,如果是批量数据导入,那就在导入前判断下已存在的记录先剔除掉。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧