[ 
https://issues.apache.org/jira/browse/DERBY-3155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12557766#action_12557766
 ] 

Denis Assanbaev (RD-Software GmbH) commented on DERBY-3155:
-----------------------------------------------------------

I find this feature usefull for also for other cases:
currently derby cannot provide an update using data from another table.

UPDATE XXX  t_u
set (col1, col2, col3)
= (select col_n1,col_n2,col_n3
     from XXX t_n
     where t_n.id = t_u.id).
CURRENT OF- version doesn't help too.

UPDATE XXX  t_u
set col1
= (select col_n1
     from XXX t_n
     where t_n.id = t_u.id),
col2
= (select col_n2
     from XXX t_n
     where t_n.id = t_u.id).
works, but it results in a lot of updates or performance boosts when 
using for a table with ~ 100 columns.

Regards

-- 
Mit freundlichen Grüßen / Kind Regards

Denis




> Support for SQL:2003 MERGE statement
> ------------------------------------
>
>                 Key: DERBY-3155
>                 URL: https://issues.apache.org/jira/browse/DERBY-3155
>             Project: Derby
>          Issue Type: New Feature
>          Components: SQL
>            Reporter: Trejkaz
>
> A relatively common piece of logic in a database application is to check for 
> a row's existence and then either update or insert depending on its existence.
> SQL:2003 added a MERGE statement to perform this operation.  It looks like 
> this:
>     MERGE INTO table_name USING table_name ON (condition)
>     WHEN MATCHED THEN UPDATE SET column1 = value1 [, column2 = value2 ...]
>     WHEN NOT MATCHED THEN INSERT column1 [, column2 ...] VALUES (value1 [, 
> value2 ...]) 
> At the moment, the only workaround for this would be to write a stored 
> procedure to do the same operation, or to implement the logic client-side.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to