再次在这里寻求您的帮助!
我有两个问题要问你和两个 sql 表:
表格1
[ ID_T1, T1_NAME, T1_VALUE ] 0 | name_t1_0 | value_t1_0 1 | name_t1_1 | value_t1_1 2 | name_t1_2 | value_t1_2 3 | name_t1_3 | value_t1_3
表_2
[ ID_T2, ID_T1_IN_T2, T2_NAME, T2_VALUE ] 0 | 0 | name_t2_00 | value_t2_00 1 | 0 | name_t2_10 | value_t2_10 2 | 0 | name_t2_20 | value_t2_20 3 | 0 | name_t2_30 | value_t2_30 0 | 1 | name_t2_01 | value_t2_01 1 | 1 | name_t2_11 | value_t2_11 0 | 2 | name_t2_02 | value_t2_02 1 | 2 | name_t2_12 | value_t2_12
ID_T1 是唯一的渐进索引。TABLE_1 中的每个 ID_T1 可以在 ID_T1_IN_T2 列中出现 N 次。
ID_T2 是与每个 ID_T1 相关联的渐进索引。
这意味着对于 TABLE_1 中的每一行,我们可以在 TABLE_2 中有 N 行。
- 问题 #1:当从 TABLE_1 中删除一行时,如何自动更新 ID_T1_IN_T2 值?
示例:从表 1 中删除 ID_T1 = 0 的行。预期结果如下(0 后的 ID_T1 减少,ID_T1_IN_T2 也减少)
表格1
[ ID_T1, T1_NAME, T1_VALUE ]
0 | name_t1_1 | value_t1_1
1 | name_t1_2 | value_t1_2
2 | name_t1_3 | value_t1_3
表_2
[ ID_T2, ID_T1_IN_T2, T2_NAME, T2_VALUE ]
0 | 0 | name_t2_01 | value_t2_01
1 | 0 | name_t2_11 | value_t2_11
0 | 1 | name_t2_02 | value_t2_02
1 | 1 | name_t2_12 | value_t2_12
- 问题 #2:如何在删除一行时自动更新 ID_T2 值?
示例:从刚刚更新的 TABLE_2 中删除 ID_T2 = 0 且 ID_T1_IN_T2=0 的行。预期结果如下(0后的ID_T2减少,ID_T1_IN_T2保持不变)
[ ID_T2, ID_T1_IN_T2, T2_NAME, T2_VALUE ]
0 | 0 | name_t2_11 | value_t2_11
0 | 1 | name_t2_02 | value_t2_02
1 | 1 | name_t2_12 | value_t2_12
在这些情况下,您建议做什么?
请注意,删除表并重新创建它们不被视为解决方案,因为它很脏且性能极差(这是我暂时采用的解决方案)。