我们有2个表renewal_bkp和adhoc_bkp以及1个MV作为test_mv1。 我基本上想创建一个脚本来更新renewal_bkp和adhoc_bkp的一行,然后从上述MV中选择数据。 这需要以循环方式完成。以下是
示例:
++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++
update renewal_bkp set network_status='provisioned' where msisdn='3234561010240';
update adhoc_bkp set status='provisioned' where msisdn='3234561010240';
select * from test_mv1 where msisdn='3234561010240';
...
...
and so on
++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++
同一条语句需要使用不同的msisdn编号生成1000次。 您能帮我创建一个脚本吗,然后手动写下每个语句。
谢谢, 桑迪普
答案 0 :(得分:0)
虽然目前还不清楚您如何访问msisdn
,但这是一个紧凑的版本,它在Data-Modifying CTE's的帮助下,可以原子式地完成所有三件事:
WITH
ids (id) AS (
VALUES ('3234561010240'), ('...'), ...
),
renewals AS (
UPDATE renewal_bkp SET network_status = 'provisioned'
WHERE msisdn IN (SELECT id FROM ids)
),
adhoc AS (
UPDATE adhoc_bkp SET status = 'provisioned'
WHERE msisdn IN (SELECT id FROM ids)
)
SELECT *
FROM test_mv1
WHERE msisdn IN (SELECT id FROM ids)
除了VALUES
子句外,您还可以从专用表中放入常规的SELECT
,如果您打算每年执行一次以上两次,则很有用。