postgresql - 表“产品”缺少 FROM 子句条目
问题描述
CREATE OR REPLACE FUNCTION update_sellstatus()
RETURNS trigger AS
$body$
BEGIN
if products."sellStatus" = "Sold" then
update auctions
set "auctionStatus" = "End"
where (products."id" = auctions."idProduct");
end if;
END
$body$
language plpgsql
create trigger update_sellStatus_auctionStatus
after update on products
for each row
execute procedure update_sellstatus()
错误:表“产品”缺少 FROM 子句条目
我想在(产品。“id”=拍卖。“idProduct”)的列auctions.auctionStatus = "End"
之后更新列。UPDATE
products.sellStatus = "Sold"
所以我创建了一个触发器,但我得到了一个错误。这让我无法更新表产品
解决方案
您不能像在函数中那样引用表。但因为这是一个触发器。如手册中所述,您可以使用记录访问更新行的值new
:
另外:在 SQL 中字符串常量需要用单引号括起来,双引号只需要用于标识符(应该像瘟疫一样避免)。
"Sold"
指一列,'Sold'
是一个字符(字符串)值
CREATE OR REPLACE FUNCTION update_sellstatus()
RETURNS trigger AS
$body$
BEGIN
if new."sellStatus" = 'Sold' then
update auctions
set "auctionStatus" = 'End'
where auctions."idProduct" = new."id";
end if;
END
$body$
language plpgsql
推荐阅读
- json - Typescript 抱怨导入的 json 模块缺少分号
- maven - 将具有不同 groupId 的工件组合起来进行 Maven 解析
- excel - 如何将一个数组中的值分配给另一个数组中的变量
- javascript - 在 Vue.js 中使用唯一值填充嵌套对象数组的下拉列表
- javascript - AWS Amplify GraphQL 查询返回 null 而不是 items 数组
- javascript - react native - 使用反应挂钩通知子组件中状态更新的父组件?
- sql - 识别聚合表中仅出现 1 次的行
- sql - 使用更新查询锁定并发更新
- javascript - 右键单击图像时显示此内容
- javascript - 我将包含FORMIK的功能组件更改为类组件并出现错误。为什么?