提出问题:大家如何控制主键的重复性?

提出问题:大家如何控制主键的重复性?   
具体说明:SQL数据库Product表 productId,productName  其中productId 为主键【非自增列】,  业务要求新增一个商品到product表,程序中如何处理主键

方案一: productid不让客户录入,由程序读取product表中的Max(productid)+1返回做主键

方案二:界面提供2个TextBox,一个供客户录入productid,一个录入productname, 在插入数据库前判断productid是否重复?

有没有更好的办法?请各位指教 谢谢

 

Parāllél(58220937)  20:11:24
第二方案是绝对不可能的
Parāllél(58220937)  20:14:51
站在客户的角度 要是你商品太多了根本无从判断什么ID才是不重复的
[深圳]预言者(405662443)  20:15:16
而且用户没必要知道Id啊
[深圳]预言者(405662443)  20:15:43
那东西就是一唯一标识符
华仔(315155589)  20:16:10
这也是我怕的,让客户录入ID。商品一多就麻烦了

Parāllél(58220937)  20:16:39
我想问一下 你以前的ID是怎么添加进去的?
华仔(315155589)  20:17:13
专门一个表管理主键

华仔(315155589)  20:17:33
每次新增都去读取最大+1

华仔(315155589)  20:18:05
由于行业特殊,很多主键是这种形式ABC201012230001

[深圳]预言者(405662443)  20:18:07
我们公司也这么做的
华仔(315155589)  20:18:58
但是我想如上面的商品表productID 也这么做没必要

华仔(315155589)  20:19:08
毕竟不是业务单号

华仔(315155589)  20:19:25
他们只是一些基础数据而已


Parāllél(58220937)  20:20:09
主要方案一要多读一次ID也不好
华仔(315155589)  20:20:39
设自增最简单,但是 都这么做 。。。。

华仔(315155589)  20:21:10
想不到好办法控制基础数据的主键 ,呵呵 走了 去吃饭了。感谢大家的帮助。谢谢了
Parāllél(58220937) 2010-12-23 20:26:06
insert into Product(productId,productName) select productId+1,productName from  Product where productId=max(productId)
[深圳]飒风(249523101) 2010-12-23 20:26:57
guid
Parāllél(58220937) 2010-12-23 20:27:02
这样就一次性完成了
[深圳]飒风(249523101) 2010-12-23 20:27:51
用guid来存productid
Parāllél(58220937) 2010-12-23 20:31:20
insert into Product(productId,productName) select top 1 productId+1,'productName' from  Product order by productId desc
Parāllél(58220937) 2010-12-23 20:31:23
这样也好
华仔(315155589)  21:31:20
Parāllél(58220937) ---谢谢  您提供的2中方案
Parāllél(58220937)  21:32:28

 

感谢他

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值