Próbuję zaktualizować tabelę według tego wyzwalacza: FunkcjaPostgreSQL wyzwalania i wiersze zaktualizowane
CREATE TRIGGER alert
AFTER UPDATE ON cars
FOR EACH ROW
EXECUTE PROCEDURE update_cars();
wyzwalania:
CREATE FUNCTION update_cars()
RETURNS 'TRIGGER'
AS $BODY$
BEGIN
IF (TG_OP = 'UPDATE') THEN
UPDATE hello_cars SET status = new.status
WHERE OLD.ID = NEW.ID;
END IF;
RETURN NULL;
END;
$$ LANGUAGE plpgsql;
Spust działa dobrze. Po zaktualizowaniu tabeli cars
tabela hello_cars
jest aktualizowana, ale kolumna stanu w każdym wierszu jest aktualizowana i zawiera ten sam nowy status! Musi być aktualizowany zgodnie z identyfikatorem samochodu.
Myślę, że mój problem jest w stanie: WHERE OLD.ID = NEW.ID;
, ale nie mogę powiedzieć, co jest nie tak.
Z góry dziękuję.
Dziękuję bardzo! – Noon
@Shadin: Nie ma za co. Proszę zobaczyć [FAQ/How To Ask] (http://stackoverflow.com/faq#howtoask), jak zaakceptować odpowiedź, która pomogła ci najbardziej. –