生成序列号
Generating sequence numbers
我有table个
ID
---
None
1
3
4
8
我有table B
ID number
---------------
None None
1 300
3 301
4 302
8 303
如果 table A 中有任何新值,我如何通过保持 table B 静态来获取 B.number 列中的值“304”、“305”....n (即保持 table B 中的旧值不变)
正如您提出的问题,这应该可行。但这是一件需要做的奇怪事情,因此最好提供较少的关于需求的抽象细节。
INSERT INTO table_b
SELECT a.id,
( SELECT MAX(number)
FROM table_b
) + ROW_NUMBER() OVER ( PARTITION BY 1 ORDER BY a.id) number
FROM table_a a
WHERE NOT EXISTS
( SELECT 1
FROM table_b b
WHERE a.id = b.id
);
我有table个
ID
---
None
1
3
4
8
我有table B
ID number
---------------
None None
1 300
3 301
4 302
8 303
如果 table A 中有任何新值,我如何通过保持 table B 静态来获取 B.number 列中的值“304”、“305”....n (即保持 table B 中的旧值不变)
正如您提出的问题,这应该可行。但这是一件需要做的奇怪事情,因此最好提供较少的关于需求的抽象细节。
INSERT INTO table_b
SELECT a.id,
( SELECT MAX(number)
FROM table_b
) + ROW_NUMBER() OVER ( PARTITION BY 1 ORDER BY a.id) number
FROM table_a a
WHERE NOT EXISTS
( SELECT 1
FROM table_b b
WHERE a.id = b.id
);