psql更新查询中表的子句条目中缺少

psql更新查询中表的子句条目中缺少,sql,postgresql,Sql,Postgresql,对于这个查询,我从表“public”的子句条目中得到了缺少的错误。为什么? BEGIN TRANSACTION; UPDATE public."Devices" SET DeviceType = 2 WHERE public."Devices.LocationId" = 5; -- error here ROLLBACK TRANSACTION; 您的双引号放错了位置: UPDATE public."Devices" SET DeviceType = 2 WHERE publ

对于这个查询,我从表“public”的子句条目中得到了缺少的错误
。为什么?

BEGIN TRANSACTION;
UPDATE public."Devices"

SET DeviceType = 2
WHERE public."Devices.LocationId" = 5; -- error here
ROLLBACK TRANSACTION;

您的双引号放错了位置:

UPDATE public."Devices"
    SET DeviceType = 2
    WHERE public."Devices"."LocationId" = 5;
或者,使用别名:

UPDATE public."Devices" d
    SET DeviceType = 2
    WHERE d."LocationId" = 5;

而且,不要使用带引号的标识符!它们真让人痛苦。

我发现这是我可以使用的最简单的语法:

UPDATE public."Devices"
    SET "DeviceType" = 2
    WHERE "LocationId" = 5;