我研究并意识到我有一个独特的情况。SQL - 删除一个顺序列后重新编号为
首先,我不允许张贴尚未图像板,因为我是一个新用户,所以看到合适的链接下面
我有多个表,其中一列(并不总是标识列)按顺序编号,编号不应有任何中断。我的目标是确保这一点保持真实。
Down and Dirty 我们有一个'Event'表,我们随机选择一行的百分比并将行插入表'Results'中。 “结果”中的“ID”列传递给一堆删除查询。
这或多或少地确保了几个表中缺少的行。
我的问题: 找出一个sql查询,它会重新编号我指定的列。我宁愿不要放弃专栏。
实例删除查询:
delete ItemVoid
from ItemTicket
join ItemVoid
on ItemTicket.item_ticket_id = itemvoid.item_ticket_id
where itemticket.ID in (select ID
from results)
示例表之前:
示例表后:
正如你可以看到两行从删除两个表基于ID列。所以现在我要弄清楚如何对item_ticket_id和item_void_id列进行重新编号,其中较高的数字会减少到缺失的数值,而下一个最高的数字会减少,等等。问题#2,如果item_ticket_id更改为顺序在ItemTickets中,然后 它必须更新ItemVoid的item_ticket_id中的更改。
我很欣赏你可以给予的任何建议。
IMO这似乎是一个设计缺陷,而不是删除行,使用位标记标记为非活动,然后被排除在您的查询。然后,在每次删除之后,您不需要重新编号记录。 – Taryn 2012-04-09 21:21:45