🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych
Article #195686

Re: PostgreSQL - trigger pomija instrukcje

#195686
From: irq
Date: Tue, 05 Nov 2019 11:12
37 lines
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-mail
References: <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