SnowFlake MERGE update/insert 所有列
SnowFlake MERGE update/insert all columns
snowflake 是否支持 updating/inserting 所有语法如 UPDATE *
或 INSERT *
的列
MERGE INTO events
USING updates
ON events.eventId = updates.eventId
WHEN MATCHED THEN
UPDATE *
WHEN NOT MATCHED THEN
INSERT *
类似于 Databricks 的做法:https://docs.databricks.com/spark/latest/spark-sql/language-manual/delta-merge-into.html
或者我们是否必须列出每一列及其值?
我在尝试上述操作时遇到错误
syntax error ... unexpected '*'.
文档帮助不大:https://docs.snowflake.com/en/sql-reference/sql/merge.html
谢谢,
UPDATE SET */INSERT *
是 SQL 语言扩展(未在 SQL 标准中定义)。
Snowflake 不支持这种语法:
matchedClause ::=
WHEN MATCHED [ AND <case_predicate> ]
THEN { UPDATE SET <col_name> = <expr> [ , <col_name2> = <expr2> ...]
| DELETE }[...]
notMatchedClause ::=
WHEN NOT MATCHED [ AND <case_predicate> ]
THEN INSERT [ ( <col_name> [ , ... ] ) ] VALUES ( <expr> [ , ... ] )
您可以在以下位置为此类功能投票:https://community.snowflake.com/s/ideas
已经有一项名为:“对 MERGE INTO 的隐式更新和插入支持”
snowflake 是否支持 updating/inserting 所有语法如 UPDATE *
或 INSERT *
MERGE INTO events
USING updates
ON events.eventId = updates.eventId
WHEN MATCHED THEN
UPDATE *
WHEN NOT MATCHED THEN
INSERT *
类似于 Databricks 的做法:https://docs.databricks.com/spark/latest/spark-sql/language-manual/delta-merge-into.html
或者我们是否必须列出每一列及其值?
我在尝试上述操作时遇到错误
syntax error ... unexpected '*'.
文档帮助不大:https://docs.snowflake.com/en/sql-reference/sql/merge.html
谢谢,
UPDATE SET */INSERT *
是 SQL 语言扩展(未在 SQL 标准中定义)。
Snowflake 不支持这种语法:
matchedClause ::= WHEN MATCHED [ AND <case_predicate> ] THEN { UPDATE SET <col_name> = <expr> [ , <col_name2> = <expr2> ...] | DELETE }[...] notMatchedClause ::= WHEN NOT MATCHED [ AND <case_predicate> ] THEN INSERT [ ( <col_name> [ , ... ] ) ] VALUES ( <expr> [ , ... ] )
您可以在以下位置为此类功能投票:https://community.snowflake.com/s/ideas
已经有一项名为:“对 MERGE INTO 的隐式更新和插入支持”