[英]How to apply an Updatable CTE that will Change Grouped Numbering and Apply it to two tables?
我有两个多行的表:
Table A
(TYPE - Num)
LA - 1
LA - 2
LA - 3
LA - 4
LA - 5
MB - 1
MB - 2
.
.
.
Table B
(TYPE - Num - NumLine)
LA - 1 - 1
LA - 1 - 2
LA - 1 - 3
LA - 1 - 4
LA - 2 - 1
LA - 2 - 2
LA - 2 - 3
LA - 2 - 4
LA - 3 - 1
LA - 3 - 2
LA - 4 - 1
LA - 5 - 1
MB - 1 - 1
MB - 1 - 2
MB - 1 - 3
MB - 2 - 1
.
.
.
我希望 NUM 从 LA 的特定数字开始,而 MB 则从不同的数字开始:例如:我希望 LA 从 12 开始,MB 从 20 开始,我希望此更改适用于两个表,在相应的排。
Table A
(TYPE - Num)
LA - 12
LA - 13
LA - 14
LA - 15
LA - 16
MB - 20
MB - 21
.
.
.
Table B
(TYPE - Num - NumLine)
LA - 12 - 1
LA - 12 - 2
LA - 12 - 3
LA - 12 - 4
LA - 13 - 1
LA - 13 - 2
LA - 13 - 3
LA - 13 - 4
LA - 14 - 1
LA - 14 - 2
LA - 15 - 1
LA - 16 - 1
MB - 20 - 1
MB - 20 - 2
MB - 20 - 3
MB - 21 - 1
.
.
.
我怎样才能做到这一点? 我想将此应用于很多行。
如果两个表之间有外键,则应将其更改为ON UPDATE CASCADE
。
ALTER TABLE TableB ADD CONSTRAINT fk_Type_Num
FOREIGN KEY (Type, Num)
REFERENCES TableA(Type, Num)
ON UPDATE CASCADE;
然后你可以简单地做
UPDATE TableA
SET Num = Num + CASE WHEN Type = 'LA' THEN 11 ELSE 19 END
WHERE Type IN ('LA','MB');
这也将自动更新TableB
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.