一尘不染

如何更新记录的所有列而不必列出每一列

sql

我试图找出一种更新记录的方法,而不必列出需要更新的每个列名。

例如,如果我可以使用类似于以下内容的东西,那就太好了:

// the parts inside braces are what I am trying to figure out
UPDATE Employee
SET {all columns, without listing each of them} 
WITH {this record with id of '111' from other table}
WHERE employee_id = '100'

如果可以做到,那么编写这种查询的最直接/最有效的方法是什么?


阅读 165

收藏
2021-03-17

共1个答案

一尘不染

这是不可能的。

您尝试执行的操作不属于SQL规范,并且不受任何数据库供应商的支持。请参见MySQLPostgresqlMSSQLOracleFirebirdTeradata的SQL
UPDATE语句的规范。其中的每个仅支持以下语法:

UPDATE table_reference
   SET column1 = {expression} [, column2 = {expression}] ...
[WHERE ...]
2021-03-17