【发布时间】:2022-09-23 18:46:30
【问题描述】:
早上好,我的 SQL 服务器有一个大问题,它没有以正确的方式设置,该服务器有一些关系表。 我有一个 TableA,其中有 2 列,ID 和 NUMBER_ORDER。 我有一个 TableB,其中有 10 列,第一列是与 TableA 相关的 ID 列,其他列与每个 NUMBER_ORDER 的 TEST 相关。 例子: 表
| ID | NUMBER_ORDER |
|---|---|
| 1 | 110000 |
| 2 | 110001 |
| 3 | 110002 |
| 4 | 110003 |
表B
| ID | Test | date | NumberofTest |
|---|---|---|---|
| 1 | this is a test for 110000 | 20/09/2022 10:15 | 1 |
| 1 | this is another test for 110000 | 20/09/2022 10:20 | 2 |
| 2 | this is a test for 110001 | 21/09/2022 9:10 | 1 |
| 2 | this is another test for 110001 | 21/09/2022 9:20 | 2 |
正如您在 TableB 中看到的,TableA 的每个 ID 出现的次数更多,因为有不同的测试,这应该是这样的。
现在我解释我的问题:
在这个表中没有设置 PrimaryKey 索引。 你可以想象的刚刚发生的是,现在 TableA 有不同 NUMBER_ORDER 的双 ID 在 Table_B 中没有太大变化,因为记录被正确写入,但是例如如果 ID \"1\" 加倍,我们在 TableB 中也将它加倍,像这样, 示例 DOUBLEID: 表
| ID | NUMBER_ORDER |
|---|---|
| 1 | 110000 |
| 1 | 110001 |
| 2 | 110002 |
| 3 | 110003 |
表B
| ID | Test | date | NumberofTest |
|---|---|---|---|
| 1 | this is a test for 110000 | 20/09/2022 10:15 | 1 |
| 1 | this is another test for 110000 | 20/09/2022 10:20 | 2 |
| 1 | this is a test for 110001 | 21/09/2022 9:10 | 1 |
| 1 | this is another test for 110001 | 21/09/2022 9:20 | 2 |
我的问题是:
如何在不丢失 TableB 中的关系以使我拥有的所有 ID 唯一的情况下重置 TableA 的 ID 列? 想象一下,我在表 A 中有 1000 个 ID 加倍,通常对于 TableB 中的每个 ID,都有 150 行不同的测试,所以我不能手动更新它们。 如果您只花时间阅读它,请提前致谢。 我希望我的问题很清楚。
编辑:是否存在一种方法可以从 id 列中删除所有数字并使用 auto_increment 或循环重置它们?如果我在 TableA 中执行它会自动在 TableB 上执行相同的操作吗?因为它会是完美的,所以这 2 个表中的 ID 只是一个关系,看看什么测试与什么 NUMBER_ORDER 相关,所以它是否从 1 更改为 2 并不重要,但重要的是使其唯一。
此致。
根据要求,我会尽量使表格更逼真。
表A应该是:
| ID | ORDER |
|---|---|
| 1 | 112563 |
| 2 | 116558 |
| 3 | 113365 |
| 4 | 102567 |
| 5 | 104758 |
| 6 | 105967 |
表B应该是:
| ID | teststep | key | min | max | value | res | Time |
|---|---|---|---|---|---|---|---|
| 1 | AFL | AFL_1_engine | 3500 | 3700 | 3567 | OK | 2018-12-19 16:52 |
| 1 | AFL | AFL_4_sitting | - | - | - | OK | 2018-12-19 16:53 |
| 2 | AFL | AFL_1_engine | 3500 | 3700 | 3780 | NOK | 2019-10-15 10:00 |
| 2 | AFL | AFL_1_engine | - | - | - | OK | 2019-10-15 10:02 |
exc... 对于其他 ID\'s
标签: sql sql-server tsql