gpt4 book ai didi

c++ - 删除查询后更新自动编号字段

转载 作者:行者123 更新时间:2023-11-27 23:06:51 24 4
gpt4 key购买 nike

简介及相关信息:

我有 MS ACCESS 2007 数据库,我使用 ADOC++ 进行编辑。

问题:

我的问题是主键也代表记录的序号,删除后应该适当更新。主键是自动编号类型

这是我正在谈论的例子:

| #PK | Other data ... |
| 1 | ... |
| 2 | ... |
| 3 | ... |
| 4 | ... |
| 5 | ... |

现在,如果我删除第 3 条记录,我会遇到以下问题:

| #PK | Other data ... |
| 1 | ... |
| 2 | ... |
| 4 | ... |
| 5 | ... |

但我应该得到以下结果:

| #PK | Other data ... |
| 1 | ... |
| 2 | ... |
| 3 | ... | // edited to reflect the change ( previous value was 4 )
| 4 | ... | // edited to reflect the change ( previous value was 5 )

如果我删除最后一条记录然后插入一条新记录,我会得到这样的结果:

| #PK | Other data ... |
| 1 | ... |
| 2 | ... |
| 3 | ... |
| 4 | ... |
| 6 | ... | // this should be 5

问题:

在我执行 DELETE 查询 后,有没有办法让我以编程方式更新autonumber 字段

编辑:

因为我知道这是一种不好的做法,所以我更愿意添加应该是序数的新字段,这样我的表就可以如下所示:

| #PK | Ordinal | Other data ... |
| 1 | 1 | ... |
| 2 | 2 | ... |
| 4 | 3 | ... |
| 5 | 4 | ... |

但我更希望它自动更新。如果这不可能,我宁愿在执行删除后使用 SQL 查询 更新该字段。

谢谢。

最好的问候。

最佳答案

这是可能的,但不是正确的方法。主键用于关系,因此如果更改值,则需要更新所有相关表。即使您目前没有任何相关表,您仍然应该考虑为订单添加一个单独的字段,否则您将来要添加相关表时可能会遇到同样的问题。

编辑 回答您的问题:

有没有办法添加另一个表示序号的字段,并在插入新记录后自动递增?

如果设置为autonumber,它会自动递增,但不能修改。您可以将它设置为数字,当您插入时,您可以使用 SELECT MAX(oredinal) + 1 FROM mytable 来递增它。

关于c++ - 删除查询后更新自动编号字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23024128/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com