別の 2 つのテーブルからの結合に基づいて、1 つのマスター テーブルを更新する必要があります。この更新を使用して何百万ものレコードを更新する必要があるため、ここで最善のアプローチを教えてください。
2 に答える
0
たぶん、この例は役に立つでしょう:
CREATE TABLE A(
ID INT,
STR VARCHAR2(10));
CREATE TABLE B(
ID INT,
STR VARCHAR2(10));
INSERT INTO A VALUES(1,'A1');
INSERT INTO A VALUES(2,'A2');
INSERT INTO A VALUES(3,'A3');
INSERT INTO B VALUES(1,'B');
INSERT INTO B VALUES(3,'C');
INSERT INTO B VALUES(4,'D');
/*HERE THE QUERY!!*/
MERGE INTO A
USING ( select ID, STR
from B ) B
ON ( A.ID = B.ID )
WHEN MATCHED THEN
UPDATE SET A.STR = B.STR;
ここで他のクエリですが、NULL値で問題が発生する可能性があります(ここで試してください):
UPDATE A
SET STR = (
SELECT STR
FROM B
WHERE A.ID = B.ID);
ここでこれを試すことができます
于 2013-07-17T17:40:08.900 に答える