Article View: pl.comp.bazy-danych
Article #195685Re: PostgreSQL - trigger pomija instrukcje
From: Marek S
Date: Mon, 04 Nov 2019 21:45
Date: Mon, 04 Nov 2019 21:45
30 lines
1832 bytes
1832 bytes
W dniu 2019-11-04 o 16:19, irq pisze: > LOG nie pokazuje statementów wykonywanych z wnętrza funkcji. Nie > oznacza to, że "update z niego nie jest realizowany". > Znalazłem powód niedziałania update. Rozwiązałem go tak: IF OLD.parent_id ISNULL THEN UPDATE admin.category SET weight = weight - 1 WHERE parent_id ISNULL AND weight > OLD.weight; ELSE UPDATE admin.category SET weight = weight - 1 WHERE parent_id = OLD.parent_id AND weight > OLD.weight; END IF; Nie działa porównanie parent_id = OLD.parent_id jeżeli wartość jest nullem. Uświadomiłem sobie, że OLD.parent nie jest częścią SQL lecz zmienną, której wartość wstawiamy, więc parent_id = null nie może zadziałać. :-) Czy orientujesz się czy istnieje jakiś trik umożliwiający unikanie nadmiarowych warunków w funkcjach? Mam na myśli "legalne" triki. -- Pozdrawiam, Marek
Technical Details
Message-ID:
<qpq658$jre$1@news.icm.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mailReferences:
<qpnjmv$f6a$1@news.icm.edu.pl> <77f293cb-2235-4f5f-9311-af76a76ba132@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail From: Marek S <precz@spamowi.com> Newsgroups: pl.comp.bazy-danych Subject: Re: PostgreSQL - trigger pomija instrukcje Date: Mon, 4 Nov 2019 22:45:09 +0100 Organization: ICM, Uniwersytet Warszawski Lines: 30 Message-ID: <qpq658$jre$1@news.icm.edu.pl> References: <qpnjmv$f6a$1@news.icm.edu.pl> <77f293cb-2235-4f5f-9311-af76a76ba132@googlegroups.com> NNTP-Posting-Host: 89-77-183-104.dynamic.chello.pl Mime-Version: 1.0 X-Trace: news.icm.edu.pl 1572903912 20334 89.77.183.104 (4 Nov 2019 21:45:12 GMT) X-Complaints-To: usenet@news.icm.edu.pl NNTP-Posting-Date: Mon, 4 Nov 2019 21:45:12 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.2.0 In-Reply-To: <77f293cb-2235-4f5f-9311-af76a76ba132@googlegroups.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit