UPDATE
Update rows in a table.
Dremio supports reading Apache Iceberg v2 tables with positional deletes. Reading tables with equality deletes is not supported. Writes by Dremio are performed using copy-on-write. Writes using merge-on-read are not supported.
UPDATE <table_name> [AS alias]
[ AT BRANCH <branch_name> ]
SET <column1_name1> = <value1> [, <column_name2> = <value2> ... ]
[ WHERE where_conditions ]
[ IN <catalog_name> ]
Parameters
<table_name>
String
The name of the source that you want to update a table in.
AT BRANCH <branch_name>
String
Optional
Specifies the branch where you want the table to be updated. When this parameter is omitted, the current branch is used.
Note: If AT BRANCH
is specified, it will override the session context for the entire query including the SELECT
portions.
SET <column1_name> = <value1> [, <column2_name> = <value2> ... ]
String
Sets the value of one or more columns. The value can be any expression or sub-query that returns a single value.
WHERE where_conditions
String
Optional
The filter for specifying which rows of the table to update.
IN <catalog_name>
String
Optional
The name of the Arctic catalog where you want to update the table. If not specified, the current Arctic catalog in the query context is used.
Join conditions are not supported in WHERE
clauses. If you need to use a join condition, use a MERGE
statement.
update t2 set id = id + t1.id from t1 where t1.name = t2.name;
merge into t2 using t1 on (t1.name = t2.name) when matched then update set id = t2.id + t1.id;