Article View: pl.comp.bazy-danych
Article #195686Re: PostgreSQL - trigger pomija instrukcje
From: irq
Date: Tue, 05 Nov 2019 11:12
Date: Tue, 05 Nov 2019 11:12
37 lines
2547 bytes
2547 bytes
W dniu poniedziałek, 4 listopada 2019 22:45:13 UTC+1 użytkownik Marek S napisał: > 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 Może w pierwotnej wersji updata: WHERE parent_id IS NOT DISTINCT FROM OLD.parent_id ?
Technical Details
Message-ID:
<2177a1fb-7bf1-404b-aa70-e64e9c1d6855@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news-2.dfn.de!news.dfn.de!news.uni-stuttgart.de!news.unit0.net!weretis.net!feeder7.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!j16no1957463qtl.0!news-out.google.com!p4ni204qtu.1!nntp.google.com!j16no1957459qtl.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<qpnjmv$f6a$1@news.icm.edu.pl> <77f293cb-2235-4f5f-9311-af76a76ba132@googlegroups.com> <qpq658$jre$1@news.icm.edu.pl>Show Full Headers
Complete Article Headers
X-Received: by 2002:aed:22c8:: with SMTP id q8mr18020306qtc.0.1572952364562; Tue, 05 Nov 2019 03:12:44 -0800 (PST) X-Received: by 2002:aca:1c06:: with SMTP id c6mr3352592oic.84.1572952363908; Tue, 05 Nov 2019 03:12:43 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news-2.dfn.de!news.dfn.de!news.uni-stuttgart.de!news.unit0.net!weretis.net!feeder7.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!j16no1957463qtl.0!news-out.google.com!p4ni204qtu.1!nntp.google.com!j16no1957459qtl.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.bazy-danych Date: Tue, 5 Nov 2019 03:12:43 -0800 (PST) In-Reply-To: <qpq658$jre$1@news.icm.edu.pl> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=78.11.36.98; posting-account=HsGcpQoAAABR8eqXdcgZHaZMq6uPUZY5 NNTP-Posting-Host: 78.11.36.98 References: <qpnjmv$f6a$1@news.icm.edu.pl> <77f293cb-2235-4f5f-9311-af76a76ba132@googlegroups.com> <qpq658$jre$1@news.icm.edu.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <2177a1fb-7bf1-404b-aa70-e64e9c1d6855@googlegroups.com> Subject: Re: PostgreSQL - trigger pomija instrukcje From: irq <ipluta62@gmail.com> Injection-Date: Tue, 05 Nov 2019 11:12:44 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit