You can use a "merge" SQL statement. I have an example below:
By submitting your email address, you agree to receive emails regarding relevant topic offers from TechTarget and its partners. You can withdraw your consent at any time. Contact TechTarget at 275 Grove Street, Newton, MA.
I have two tables: scott.emp and scott.bonus. Below is the "merge" SQL statement:
MERGE INTO bonus b USING (SELECT ename, job, sal, comm FROM emp WHERE ename IN ('SMITH', 'JAMES', 'TURNER', 'MARTIN', 'MILLER')) s ON (b.ename = s.ename) WHEN MATCHED THEN UPDATE SET b.comm = 700 WHEN NOT MATCHED THEN INSERT (b.ename, b.job, b.sal, b.comm) VALUES (s.ename, s.job, s.sal, 150);
The above merge will update the bonus comm field to 700 if the ename in bonus matches the ename in emp. If not, a new bonus record is inserted from the emp table.
Since you do not want to update and you have to use the update clause, you can change that clause to say:
update set b.comm = b.comm
Dig Deeper on Oracle and SQL
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.