Отсутствует запись предложения FROM для таблицы "product" - PullRequest
0 голосов
/ 26 февраля 2020
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 для таблицы "product"

Я хочу ОБНОВИТЬ столбец auctions.auctionStatus = "End" после UPDATE столбца products.sellStatus = "Sold" где (products. "Id" = аукционы . "idProduct").

Итак, я создал триггер, но получил ошибку. Это заставляет меня не может ОБНОВИТЬ продукты таблицы

1 Ответ

0 голосов
/ 26 февраля 2020

Вы не можете ссылаться на таблицу, как в функции. Но так как это триггер. Как описано в руководстве , вы можете получить доступ к значениям строки обновления, используя запись 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...