SQL批量删除问题

arjsyy 2010-10-12 09:29:31
现在数据库的主键是一个INT类型得,但并不是自动编号,如果是自动编号在删除得时候高效率的处理方法是
DELETE FROM TABLE1 WHERE ObjectId IN(1,2,3,4),现在编号不是自动编号,批量删除后,编号还是相临得,比如说我现在删除编号为3得编号后,他后面的编号都要做相应的调整。现在是删除一条的时候可以这样。如果批量删除除了循环执行删除一条数据的方法。还有没有更好的方法呢?请大家赐教!
...全文
184 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
honkerhero 2010-10-12
  • 打赏
  • 举报
回复
把整型自增换成长整型自增, 基本就够用了, 你这样调整编号的代价太大, 如果数据量上亿或者更多,删除一条记录所用的时间不敢想象
种草德鲁伊 2010-10-12
  • 打赏
  • 举报
回复
int最大值是20亿,哪天才会出现存储不进去的概念?
Rock870210 2010-10-12
  • 打赏
  • 举报
回复
等到数据满的那天,早就更换新系统了。。。。。。
arjsyy 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 karascanvas 的回复:]
引用 4 楼 arjsyy 的回复:

如果想要在数据库里实现该怎么弄!我不想用自动编号了,因为数据库经常删除,要是用自动编号得话,我想不知道哪天会出问题


楼主这样做才会出问题,要是数据量稍大点,更新维护索引都要很大开销,也没起到主键的作用。
[/Quote]
我这个是主键是不会重复得,为了让编号连继得,自动编号删除数据后编号不是连继得。我们原来的一个表用得自动编号,编号已经存储到了20000多了,但是实际数据却没有那么多!有一天,假如编号到了最大值了,却没有那么多的数据,到时候也就存储不进去了
种草德鲁伊 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 arjsyy 的回复:]

如果想要在数据库里实现该怎么弄!我不想用自动编号了,因为数据库经常删除,要是用自动编号得话,我想不知道哪天会出问题
[/Quote]

楼主这样做才会出问题,要是数据量稍大点,更新维护索引都要很大开销,也没起到主键的作用。
arjsyy 2010-10-12
  • 打赏
  • 举报
回复
我是SQL2000
symbol_bc 2010-10-12
  • 打赏
  • 举报
回复
要不然你要每次都用一个算法去做这件事的
symbol_bc 2010-10-12
  • 打赏
  • 举报
回复
一定要在数据库中给他们重新编号吗,在查询的时候给他们自动加上rownumber()列不是更好??
比如:select *,ROW_NUMBER() over ( order by id desc) as ii from Test
种草德鲁伊 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 arjsyy 的回复:]
他后面的编号都要做相应的调整。
[/Quote]

为啥要调整...
arjsyy 2010-10-12
  • 打赏
  • 举报
回复
如果想要在数据库里实现该怎么弄!我不想用自动编号了,因为数据库经常删除,要是用自动编号得话,我想不知道哪天会出问题
int64 2010-10-12
  • 打赏
  • 举报
回复
先把要删的都删了,
然后把id列按照1,2,3,4递增顺序重新赋值。
MSDNXGH 2010-10-12
  • 打赏
  • 举报
回复
不是主动编号也可以做,DELETE FROM TABLE1 WHERE ObjectId IN(1,2,3,4),啊。
如果要删了编号自动再调整,那就用dataapter和dataset,datatalbe吧,删除后,再调整datatalbe的编号,再保存。。。
yvhkwfn30 2010-10-12
  • 打赏
  • 举报
回复
用rownumber()不就得了吗,自动生成编号,自动排序
果然如此 2010-10-12
  • 打赏
  • 举报
回复
没有必要删除后还要连序编号,编号可以动态连序实现,
sql2005 row_number
row_number函数的用途是非常广泛,这个函数的功能是为查询出来的每一行记录生成一个序号。
arjsyy 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 honkerhero 的回复:]
把整型自增换成长整型自增, 基本就够用了, 你这样调整编号的代价太大, 如果数据量上亿或者更多,删除一条记录所用的时间不敢想象
[/Quote]
嗯,说得对。我就按这个来吧。光想怎么实现了,忘记考虑这个问题了!呵呵!

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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