You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Trejkaz (JIRA)" <ji...@apache.org> on 2007/10/28 23:49:50 UTC
[jira] Created: (DERBY-3155) Support for SQL:2003 MERGE statement
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.
[jira] Commented: (DERBY-3155) Support for SQL:2003 MERGE statement
Posted by "Denis Assanbaev (RD-Software GmbH) (JIRA)" <ji...@apache.org>.
[ 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.