Trigger für DDL Änderungen

SGFsbG8gTGlzdGUsCk5hY2hkZW0gaWNoIFNpZWJrb3BmIHp1bSB3aWVkZXJo
b2x0ZW4gTWFsIHZlcmdlc3NlbiBoYWJlLApEREwtw4RuZGVydW5nZW4sIGRp
ZSBpY2ggZGlyZWt0IGluIGRlciBEYXRlbmJhbmsgcGVyIHBzcWwgdm9yZ2Vu
b21tZW4KaGFiZSwgaW4gbWVpbiBWZXJzaW9uc2tvbnRyb2xsc3lzdGVtIGVp
bnp1Y2hlY2tlbiwga2FtIG1pciBmb2xnZW5kZQpJZGVlOiBFcyBtw7xzc3Rl
IGRvY2ggbcO2Z2xpY2hlIHNlaW4sIG1pdCBkZXJhcnRpZ2Ugw4RuZGVydW5n
ZW4gaW4gZGVyCkRhdGVuYmFuayBpcmdlbmR3aWUgcGVyIFRyaWdnZXIgYWJ6
dWZhbmdlbiB1bmQgaW0gVHJpZ2dlciBlaW4gei5CLgpwbHNoIFNjcmlwdCBh
Ynp1c2NoaWVzc2VuLCB3YXMgbWlyIGRhbm4gcGVyIE1haWwgb2RlciDDpGhu
bGljaGVtIGVpbmVuCkVyaW5uZXJ1bmdzbmFja2Vuc2NobGFnIGdpYnQuCgpH
aWJ0IGVzIGRlcmFydGlnZSBNZWNoYW5pc21lbiBzY2hvbiB1bmQgd2VubiBu
aWNodCwgd28gc29sbHRlIGljaCBkYQphbnNldHplbi4gT2RlciBpc3QgZGFz
IGVoIGVpbmUgYmzDtmRlIElkZWUgdm9uIG1pciB1bmQgZXMgZ2lidCBhbmRl
cmUsCmJlc3NlcmUgImJlc3QgcHJhY3RpY2VzIiB1bSBtZWluIFNpZWJrb3Bm
IHp1IGVudGxhc3Rlbj8KClNjaMO2bmUgQWJlbmQgbm9jaApSb2JlcnQKCi0t
IApTZW50IHZpYSBwZ3NxbC1kZS1hbGxnZW1laW4gbWFpbGluZyBsaXN0IChw
Z3NxbC1kZS1hbGxnZW1laW5AcG9zdGdyZXNxbC5vcmcpClRvIG1ha2UgY2hh
bmdlcyB0byB5b3VyIHN1YnNjcmlwdGlvbjoKaHR0cDovL3d3dy5wb3N0Z3Jl
c3FsLm9yZy9tYWlscHJlZi9wZ3NxbC1kZS1hbGxnZW1laW4K
muellerrobert [ Mi, 02 April 2008 20:51 ] [ ID #1933777 ]

Re: Trigger fürDDLÄnderungen

"Robert Müller" <muellerrobert [at] gmail.com> wrote:

> Nachdem ich Siebkopf zum wiederholten Mal vergessen habe,
> DDL-=C4nderungen, die ich direkt in der Datenbank per psql vorgenommen
> habe, in mein Versionskontrollsystem einzuchecken, kam mir folgende
> Idee: Es müsste doch mögliche sein, mit derartige =C4nderungen in der
> Datenbank irgendwie per Trigger abzufangen und im Trigger ein z.B.
> plsh Script abzuschiessen, was mir dann per Mail oder ähnlichem einen
> Erinnerungsnackenschlag gibt.

> Gibt es derartige Mechanismen schon und wenn nicht, wo sollte ich da
> ansetzen. Oder ist das eh eine blöde Idee von mir und es gibt andere,
> bessere "best practices" um mein Siebkopf zu entlasten?

Cronjob aufsetzen, der regelmäßig mit pg_dump oder ähnlichem
das Schema/die Daten in eine neue Datei gießt und diese
dann:

a) in Deinem Versionskontrollsystem kommittiert oder
b) Dir das diff gegenüber dem aktuellen Stand in Deinem Ver-
sionskontrollsystem mailt.

Tim

--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein [at] postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein
Tim Landscheidt [ Mi, 02 April 2008 21:03 ] [ ID #1933778 ]

Re: Trigger für DDL Änderungen

Robert M=C3=BCller wrote:
> Hallo Liste,
> Nachdem ich Siebkopf zum wiederholten Mal vergessen habe,
> DDL-=C3=84nderungen, die ich direkt in der Datenbank per psql vorgenomm=
en
> habe, in mein Versionskontrollsystem einzuchecken, kam mir folgende
> Idee: Es m=C3=BCsste doch m=C3=B6gliche sein, mit derartige =C3=84nderu=
ngen in der
> Datenbank irgendwie per Trigger abzufangen und im Trigger ein z.B.
> plsh Script abzuschiessen, was mir dann per Mail oder =C3=A4hnlichem ei=
nen
> Erinnerungsnackenschlag gibt.
>
> Gibt es derartige Mechanismen schon und wenn nicht, wo sollte ich da
> ansetzen. Oder ist das eh eine bl=C3=B6de Idee von mir und es gibt ande=
re,
> bessere "best practices" um mein Siebkopf zu entlasten?

das ist in dieser form nicht m=C3=B6glich da du dazu trigger auf system
tables ben=C3=B6tigen w=C3=BCrdest was nicht unterst=C3=BCtzt wird (und d=
ie idee in nem
catalogtrigger was wie plsh auszuf=C3=BChren unterst=C3=BCtzt mich in der=
meinung
das das ne gute sache ist).


Stefan

--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein [at] postgresql.o=
rg)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein
Stefan Kaltenbrunner [ Mi, 02 April 2008 21:14 ] [ ID #1933779 ]

Re: Trigger für DDL Änderungen

QW0gMDIuMDQuMDggc2NocmllYiBTdGVmYW4gS2FsdGVuYnJ1bm5lciA8c3Rl
ZmFuQGthbHRlbmJydW5uZXIuY2M+Ogo+IFJvYmVydCBNw7xsbGVyIHdyb3Rl
Ogo+Cj4gPiBIYWxsbyBMaXN0ZSwKPiA+IE5hY2hkZW0gaWNoIFNpZWJrb3Bm
IHp1bSB3aWVkZXJob2x0ZW4gTWFsIHZlcmdlc3NlbiBoYWJlLAo+ID4gRERM
LcOEbmRlcnVuZ2VuLCBkaWUgaWNoIGRpcmVrdCBpbiBkZXIgRGF0ZW5iYW5r
IHBlciBwc3FsIHZvcmdlbm9tbWVuCj4gPiBoYWJlLCBpbiBtZWluIFZlcnNp
b25za29udHJvbGxzeXN0ZW0gZWluenVjaGVja2VuLCBrYW0gbWlyIGZvbGdl
bmRlCj4gPiBJZGVlOiBFcyBtw7xzc3RlIGRvY2ggbcO2Z2xpY2hlIHNlaW4s
IG1pdCBkZXJhcnRpZ2Ugw4RuZGVydW5nZW4gaW4gZGVyCj4gPiBEYXRlbmJh
bmsgaXJnZW5kd2llIHBlciBUcmlnZ2VyIGFienVmYW5nZW4gdW5kIGltIFRy
aWdnZXIgZWluIHouQi4KPiA+IHBsc2ggU2NyaXB0IGFienVzY2hpZXNzZW4s
IHdhcyBtaXIgZGFubiBwZXIgTWFpbCBvZGVyIMOkaG5saWNoZW0gZWluZW4K
PiA+IEVyaW5uZXJ1bmdzbmFja2Vuc2NobGFnIGdpYnQuCj4gPgo+ID4gR2li
dCBlcyBkZXJhcnRpZ2UgTWVjaGFuaXNtZW4gc2Nob24gdW5kIHdlbm4gbmlj
aHQsIHdvIHNvbGx0ZSBpY2ggZGEKPiA+IGFuc2V0emVuLiBPZGVyIGlzdCBk
YXMgZWggZWluZSBibMO2ZGUgSWRlZSB2b24gbWlyIHVuZCBlcyBnaWJ0IGFu
ZGVyZSwKPiA+IGJlc3NlcmUgImJlc3QgcHJhY3RpY2VzIiB1bSBtZWluIFNp
ZWJrb3BmIHp1IGVudGxhc3Rlbj8KPiA+Cj4KPiAgZGFzIGlzdCBpbiBkaWVz
ZXIgZm9ybSBuaWNodCBtw7ZnbGljaCBkYSBkdSBkYXp1IHRyaWdnZXIgYXVm
IHN5c3RlbSB0YWJsZXMKPiBiZW7DtnRpZ2VuIHfDvHJkZXN0IHdhcyBuaWNo
dCB1bnRlcnN0w7x0enQgd2lyZCAodW5kIGRpZSBpZGVlIGluIG5lbQo+IGNh
dGFsb2d0cmlnZ2VyIHdhcyB3aWUgcGxzaCBhdXN6dWbDvGhyZW4gdW50ZXJz
dMO8dHp0IG1pY2ggaW4gZGVyIG1laW51bmcgZGFzCj4gZGFzIG5lIGd1dGUg
c2FjaGUgaXN0KS4KPgoKR2VuYXUgZGFzIG1hY2h0IGF1Y2ggbWlyIG5pY2h0
IHdlbmlnIEJhdWNoc2NobWVyemVuLiBPSywgZXMgd8OkcmUgZWgKIm51ciIg
ZWluZSBFbnR3aWNrbGVyZGIgYWJlciBpY2gga2FubiBtaXIgdm9yc3RlbGxl
biwgZGFzIGljaCBkYSBlaW5lCk1lbmdlIGthcG90dCBleHBlcmltZW50aWVy
ZW4ga8O2bm50ZSAqZyogQWJlciBlcyBow6R0dGUgamEgc2VpbiBrw7ZubmVu
LApkYXNzIGVzIGRhIHNjaG9uIHdhcyBpbiBkaWVzZXIgUmljaHR1bmcgZ2li
dC4gV29iZWkgbWlyIGVvbmbDpGxsdCwgd2llCndpcmQgZGVubiBzb3dhcyDD
vGJlcmhhdXB0IGJlaSBSZXBsaWNhdGlvbnNzeXN0ZW1lbiBnZWhhbmRoYWJ0
PwoKPgo+ICBTdGVmYW4KPgpSb2JlcnQKCi0tIApTZW50IHZpYSBwZ3NxbC1k
ZS1hbGxnZW1laW4gbWFpbGluZyBsaXN0IChwZ3NxbC1kZS1hbGxnZW1laW5A
cG9zdGdyZXNxbC5vcmcpClRvIG1ha2UgY2hhbmdlcyB0byB5b3VyIHN1YnNj
cmlwdGlvbjoKaHR0cDovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tYWlscHJlZi9w
Z3NxbC1kZS1hbGxnZW1laW4K
muellerrobert [ Mi, 02 April 2008 21:21 ] [ ID #1933780 ]

Re: Trigger fürDDLÄnderungen

On Wed, 2 Apr 2008 20:51:42 +0200 Robert M=C3=BCller wrote:

> Nachdem ich Siebkopf zum wiederholten Mal vergessen habe,
> DDL-=C3=84nderungen, die ich direkt in der Datenbank per psql vorgenommen
> habe, in mein Versionskontrollsystem einzuchecken, kam mir folgende
> Idee: Es m=C3=BCsste doch m=C3=B6gliche sein, mit derartige =C3=84nderung=
en in der
> Datenbank irgendwie per Trigger abzufangen und im Trigger ein z.B.
> plsh Script abzuschiessen, was mir dann per Mail oder =C3=A4hnlichem einen
> Erinnerungsnackenschlag gibt.

Uh, schlechte Idee. ;-)
Jedenfalls meiner Meinung nach.
Warum willst du soziale Probleme mit Technik erschlagen?


> Gibt es derartige Mechanismen schon und wenn nicht, wo sollte ich da
> ansetzen. Oder ist das eh eine bl=C3=B6de Idee von mir und es gibt andere,
> bessere "best practices" um mein Siebkopf zu entlasten?

Eleganter w=C3=A4re ein System aus einem Test- und einem Live Server. Auf d=
em
Testserver kannst du probieren, was du willst. Der Live Server wird nur
aus dem Versionskontrollsystem aktualisiert, nicht direkt =C3=BCber die
Konsole.

Auf die Art stellst du sicher, das alle =C3=84nderungen auch im SVN sind -
dazu geh=C3=B6rt nat=C3=BCrlich der Wille (oder vielleicht auch die Trennun=
g auf
zwei Personen), das nicht kleine =C3=84nderungen "mal eben" von Hand gehackt
werden.


Bis dann

--
Andreas 'ads' Scherbaum
German PostgreSQL User Group
European PostgreSQL User Group - Board of Directors

--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein [at] postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein
adsmail [ Mi, 02 April 2008 21:22 ] [ ID #1933781 ]

Re: Trigger für DDL Änderungen

Robert M=C3=BCller wrote:
> Am 02.04.08 schrieb Stefan Kaltenbrunner <stefan [at] kaltenbrunner.cc>:
>> Robert M=C3=BCller wrote:
>>
>>> Hallo Liste,
>>> Nachdem ich Siebkopf zum wiederholten Mal vergessen habe,
>>> DDL-=C3=84nderungen, die ich direkt in der Datenbank per psql vorgeno=
mmen
>>> habe, in mein Versionskontrollsystem einzuchecken, kam mir folgende
>>> Idee: Es m=C3=BCsste doch m=C3=B6gliche sein, mit derartige =C3=84nde=
rungen in der
>>> Datenbank irgendwie per Trigger abzufangen und im Trigger ein z.B.
>>> plsh Script abzuschiessen, was mir dann per Mail oder =C3=A4hnlichem =
einen
>>> Erinnerungsnackenschlag gibt.
>>>
>>> Gibt es derartige Mechanismen schon und wenn nicht, wo sollte ich da
>>> ansetzen. Oder ist das eh eine bl=C3=B6de Idee von mir und es gibt an=
dere,
>>> bessere "best practices" um mein Siebkopf zu entlasten?
>>>
>> das ist in dieser form nicht m=C3=B6glich da du dazu trigger auf syst=
em tables
>> ben=C3=B6tigen w=C3=BCrdest was nicht unterst=C3=BCtzt wird (und die i=
dee in nem
>> catalogtrigger was wie plsh auszuf=C3=BChren unterst=C3=BCtzt mich in =
der meinung das
>> das ne gute sache ist).
>>
>
> Genau das macht auch mir nicht wenig Bauchschmerzen. OK, es w=C3=A4re e=
h
> "nur" eine Entwicklerdb aber ich kann mir vorstellen, das ich da eine
> Menge kapott experimentieren k=C3=B6nnte *g* Aber es h=C3=A4tte ja sein=
k=C3=B6nnen,
> dass es da schon was in dieser Richtung gibt. Wobei mir eonf=C3=A4llt, =
wie
> wird denn sowas =C3=BCberhaupt bei Replicationssystemen gehandhabt?

gar nicht (automatisch) - slony zB erfordert das man DDL =C3=A4nderunderu=
ng
via slonik einkippt so das slony die Nodes entsprechend locken kann und
die =C3=84nderungen selbst durchf=C3=BChrt.


Stefan

--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein [at] postgresql.o=
rg)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein
Stefan Kaltenbrunner [ Mi, 02 April 2008 21:24 ] [ ID #1933782 ]

Re: Trigger für DDL Änderungen

Am Mittwoch, 2. April 2008 20:51:42 schrieb Robert M=C3=BCller:
> Hallo Liste,
> Nachdem ich Siebkopf zum wiederholten Mal vergessen habe,
> DDL-=C3=84nderungen, die ich direkt in der Datenbank per psql vorgenommen
> habe, in mein Versionskontrollsystem einzuchecken, kam mir folgende
> Idee: Es m=C3=BCsste doch m=C3=B6gliche sein, mit derartige =C3=84nderung=
en in der
> Datenbank irgendwie per Trigger abzufangen und im Trigger ein z.B.
> plsh Script abzuschiessen, was mir dann per Mail oder =C3=A4hnlichem einen
> Erinnerungsnackenschlag gibt.
>
> Gibt es derartige Mechanismen schon und wenn nicht, wo sollte ich da
> ansetzen. Oder ist das eh eine bl=C3=B6de Idee von mir und es gibt andere,
> bessere "best practices" um mein Siebkopf zu entlasten?
>
> Sch=C3=B6ne Abend noch
> Robert


http://pgfoundry.org/projects/dbmirror/
dbmirror is a trigger based master/slave replication system for Postgresql=

written in C and Perl. It was included in the contrib module for Postgresql=

in versions 7.3 to 8.1.

Allerdings:
DBMirror is no longer under active development.

--
Mit freundlichen Gr=C3=BC=C3=9Fen
Rolf Schaufelberger

--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein [at] postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein
Rolf Schaufelberger [ Mi, 02 April 2008 20:58 ] [ ID #1933783 ]

Re: Trigger für DDL Änderungen

QW0gMDIuMDQuMDggc2NocmllYiBSb2xmIFNjaGF1ZmVsYmVyZ2VyIDxyc0Bw
bHVzdy5kZT46Cj4gQW0gTWl0dHdvY2gsIDIuIEFwcmlsIDIwMDggMjA6NTE6
NDIgc2NocmllYiBSb2JlcnQgTcO8bGxlcjoKPgo+ID4gSGFsbG8gTGlzdGUs
Cj4gID4gTmFjaGRlbSBpY2ggU2llYmtvcGYgenVtIHdpZWRlcmhvbHRlbiBN
YWwgdmVyZ2Vzc2VuIGhhYmUsCj4gID4gRERMLcOEbmRlcnVuZ2VuLCBkaWUg
aWNoIGRpcmVrdCBpbiBkZXIgRGF0ZW5iYW5rIHBlciBwc3FsIHZvcmdlbm9t
bWVuCj4gID4gaGFiZSwgaW4gbWVpbiBWZXJzaW9uc2tvbnRyb2xsc3lzdGVt
IGVpbnp1Y2hlY2tlbiwga2FtIG1pciBmb2xnZW5kZQo+ICA+IElkZWU6IEVz
IG3DvHNzdGUgZG9jaCBtw7ZnbGljaGUgc2VpbiwgbWl0IGRlcmFydGlnZSDD
hG5kZXJ1bmdlbiBpbiBkZXIKPiAgPiBEYXRlbmJhbmsgaXJnZW5kd2llIHBl
ciBUcmlnZ2VyIGFienVmYW5nZW4gdW5kIGltIFRyaWdnZXIgZWluIHouQi4K
PiAgPiBwbHNoIFNjcmlwdCBhYnp1c2NoaWVzc2VuLCB3YXMgbWlyIGRhbm4g
cGVyIE1haWwgb2RlciDDpGhubGljaGVtIGVpbmVuCj4gID4gRXJpbm5lcnVu
Z3NuYWNrZW5zY2hsYWcgZ2lidC4KPiAgPgo+ICA+IEdpYnQgZXMgZGVyYXJ0
aWdlIE1lY2hhbmlzbWVuIHNjaG9uIHVuZCB3ZW5uIG5pY2h0LCB3byBzb2xs
dGUgaWNoIGRhCj4gID4gYW5zZXR6ZW4uIE9kZXIgaXN0IGRhcyBlaCBlaW5l
IGJsw7ZkZSBJZGVlIHZvbiBtaXIgdW5kIGVzIGdpYnQgYW5kZXJlLAo+ICA+
IGJlc3NlcmUgImJlc3QgcHJhY3RpY2VzIiB1bSBtZWluIFNpZWJrb3BmIHp1
IGVudGxhc3Rlbj8KPiAgPgo+ICA+IFNjaMO2bmUgQWJlbmQgbm9jaAo+ICA+
IFJvYmVydAo+Cj4KPgo+IGh0dHA6Ly9wZ2ZvdW5kcnkub3JnL3Byb2plY3Rz
L2RibWlycm9yLwo+ICBkYm1pcnJvciBpcyBhIHRyaWdnZXIgYmFzZWQgbWFz
dGVyL3NsYXZlIHJlcGxpY2F0aW9uIHN5c3RlbSBmb3IgUG9zdGdyZXNxbAo+
ICB3cml0dGVuIGluIEMgYW5kIFBlcmwuIEl0IHdhcyBpbmNsdWRlZCBpbiB0
aGUgY29udHJpYiBtb2R1bGUgZm9yIFBvc3RncmVzcWwKPiAgaW4gdmVyc2lv
bnMgNy4zIHRvIDguMS4KPgo+ICBBbGxlcmRpbmdzOgo+ICAgREJNaXJyb3Ig
aXMgbm8gbG9uZ2VyIHVuZGVyIGFjdGl2ZSBkZXZlbG9wbWVudC4KCkRhbmtl
IGbDvHIgZGVuIFRpcCwgYWJlciBsZWlkZXIgaXN0IGRhcyBuaWNodCBkYXMg
cmljaHRpZ2UsIERCTWlycm9yCnNjaGF1IG51ciBuYWNoIERhdGVuw6RuZGVy
dW5nZW4gaW5uZXJoYWxiIHZvbiBUYWJlbGxlbiwgaXN0IGFsc28gcXVhc2kK
ZWluIFNsb255LWxpZ2h0LgoKCj4gIC0tCj4gIE1pdCBmcmV1bmRsaWNoZW4g
R3LDvMOfZW4KPgo+IFJvbGYgU2NoYXVmZWxiZXJnZXIKClJvYmVydAoKLS0g
ClNlbnQgdmlhIHBnc3FsLWRlLWFsbGdlbWVpbiBtYWlsaW5nIGxpc3QgKHBn
c3FsLWRlLWFsbGdlbWVpbkBwb3N0Z3Jlc3FsLm9yZykKVG8gbWFrZSBjaGFu
Z2VzIHRvIHlvdXIgc3Vic2NyaXB0aW9uOgpodHRwOi8vd3d3LnBvc3RncmVz
cWwub3JnL21haWxwcmVmL3Bnc3FsLWRlLWFsbGdlbWVpbgo=
muellerrobert [ Mi, 02 April 2008 22:10 ] [ ID #1933784 ]

Re: Trigger fürDDLÄnderungen

"Robert Müller" <muellerrobert [at] gmail.com> wrote:

(Ich gehe einmal davon aus, dass Deine Mail an die Liste ge-
hen sollte.)

>> > Nachdem ich Siebkopf zum wiederholten Mal vergessen habe,
>> > DDL-=C4nderungen, die ich direkt in der Datenbank per psql vorgenommen
>> > habe, in mein Versionskontrollsystem einzuchecken, kam mir folgende
>> > Idee: Es müsste doch mögliche sein, mit derartige =C4nderungen in=
der
>> > Datenbank irgendwie per Trigger abzufangen und im Trigger ein z.B.
>> > plsh Script abzuschiessen, was mir dann per Mail oder ähnlichem ein=
en
>> > Erinnerungsnackenschlag gibt.

>> > Gibt es derartige Mechanismen schon und wenn nicht, wo sollte ich da
>> > ansetzen. Oder ist das eh eine blöde Idee von mir und es gibt ander=
e,
>> > bessere "best practices" um mein Siebkopf zu entlasten?

>> Cronjob aufsetzen, der regelmäßig mit pg_dump oder ähnlichem
>> das Schema/die Daten in eine neue Datei gießt und diese
>> dann:

>> a) in Deinem Versionskontrollsystem kommittiert oder
>> b) Dir das diff gegenüber dem aktuellen Stand in Deinem Ver-
>> sionskontrollsystem mailt.

> Ja, daran habe ich auch schon gedacht und auch damit rumgespielt, ich
> habe allerdings zum Bleistift meine einzelnen SPs in jeweils eigenen
> Files und ich habe noch keinen /einfachen/ Weg gefunden, diese auch
> einzeln als Files aus der DB zu extrahieren ... Naja auf jeden Fall
> werde ich auch in dieser Richtung mal ein wenig weiterbasteln. psql
> mit \df+ und Konsorten sollten mir da weiterhelfen.

Ich empfehle in solchen Fällen Perl :-). Man nehme den kom-
pletten Dump, und solange "CREATE FUNCTION" vorhanden ist,
verschiebe man die Definition in eine eigene Datei und er-
setze sie wahlweise durch nichts oder "\i funktion.sql".
Fertig.

Schwierig finde ich eigentlich nur, dass PostgreSQL bei
Views sehr verschwenderisch mit expliziten Casts umgeht.
Selbst NULLs bekommen den Datentyp der Zielspalte verpasst.
Eine View, die aus meiner Adressdatenbank die Straßenangaben
in Straße und Hausnummer trennt, wird dadurch zu:

| Sicht =BBpublic.splittedaddresses=AB
| Spalte | Typ | Attribute
| ----------+-----------------------+-----------
| street | text |
| number | integer |
| postcode | character varying(10) |
| city | character varying(50) |
| Sichtdefinition:
| SELECT
| CASE
| WHEN addresses.street::text ~ ' [0-9]+ - [0-9]+$'::text THEN =
"substring"(addresses.street::text, 1, rindex("substring"(addresses.street:=
:text, 1, "position"(addresses.street::text, ' - '::text) - 1)::character v=
arying, ' '::character varying) - 1)
| WHEN addresses.street::text ~ ' [0-9]+[a-z]?$'::text THEN "su=
bstring"(addresses.street::text, 1, rindex(addresses.street, ' '::character=
varying) - 1)
| ELSE NULL::text
| END AS street,
| CASE
| WHEN addresses.street::text ~ ' [0-9]+ - [0-9]+$'::text THEN =
int4("substring"(addresses.street::text, rindex("substring"(addresses.stree=
t::text, 1, "position"(addresses.street::text, ' - '::text) - 1)::character=
varying, ' '::character varying) + 1, "position"(addresses.street::text, '=
- '::text) - rindex("substring"(addresses.street::text, 1, "position"(addr=
esses.street::text, ' - '::text) - 1)::character varying, ' '::character va=
rying) - 1))
| WHEN addresses.street::text ~ ' [0-9]+$'::text THEN int4("sub=
string"(addresses.street::text, rindex(addresses.street, ' '::character var=
ying) + 1))
| WHEN addresses.street::text ~ ' [0-9]+[a-z]$'::text THEN int4=
("substring"(addresses.street::text, rindex(addresses.street, ' '::characte=
r varying) + 1, length(addresses.street::text) - rindex(addresses.street, '=
'::character varying) - 1))
| ELSE NULL::integer
| END AS number, addresses.postcode, addresses.city
| FROM addresses
| WHERE addresses.country =3D 'DE'::bpchar AND addresses.street::text !~ =
'^Postfach [0-9]+$'::text AND text(date('now'::text)) ~ addresses."valid"::=
text;

Kennt jemand Methoden, solche Ungeheuer automatisch zu ent-
wirren?

Tim

--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein [at] postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein
Tim Landscheidt [ Mi, 02 April 2008 22:11 ] [ ID #1933785 ]

Re: Trigger für DDL Änderungen

QW0gMDIuMDQuMDggc2NocmllYiBBbmRyZWFzICdhZHMnIFNjaGVyYmF1bSA8
YWRzbWFpbEB3YXJzLW5pY2h0LmRlPjoKPiBPbiBXZWQsIDIgQXByIDIwMDgg
MjA6NTE6NDIgKzAyMDAgUm9iZXJ0IE3DvGxsZXIgd3JvdGU6Cj4KPiAgPiBO
YWNoZGVtIGljaCBTaWVia29wZiB6dW0gd2llZGVyaG9sdGVuIE1hbCB2ZXJn
ZXNzZW4gaGFiZSwKPiAgPiBEREwtw4RuZGVydW5nZW4sIGRpZSBpY2ggZGly
ZWt0IGluIGRlciBEYXRlbmJhbmsgcGVyIHBzcWwgdm9yZ2Vub21tZW4KPiAg
PiBoYWJlLCBpbiBtZWluIFZlcnNpb25za29udHJvbGxzeXN0ZW0gZWluenVj
aGVja2VuLCBrYW0gbWlyIGZvbGdlbmRlCj4gID4gSWRlZTogRXMgbcO8c3N0
ZSBkb2NoIG3DtmdsaWNoZSBzZWluLCBtaXQgZGVyYXJ0aWdlIMOEbmRlcnVu
Z2VuIGluIGRlcgo+ICA+IERhdGVuYmFuayBpcmdlbmR3aWUgcGVyIFRyaWdn
ZXIgYWJ6dWZhbmdlbiB1bmQgaW0gVHJpZ2dlciBlaW4gei5CLgo+ICA+IHBs
c2ggU2NyaXB0IGFienVzY2hpZXNzZW4sIHdhcyBtaXIgZGFubiBwZXIgTWFp
bCBvZGVyIMOkaG5saWNoZW0gZWluZW4KPiAgPiBFcmlubmVydW5nc25hY2tl
bnNjaGxhZyBnaWJ0Lgo+Cj4KPiBVaCwgc2NobGVjaHRlIElkZWUuIDstKQo+
ICBKZWRlbmZhbGxzIG1laW5lciBNZWludW5nIG5hY2guCj4gIFdhcnVtIHdp
bGxzdCBkdSBzb3ppYWxlIFByb2JsZW1lIG1pdCBUZWNobmlrIGVyc2NobGFn
ZW4/CgpXZW5uIGVzIGRlbm4gZWluZW4gZWluZmFjaGVuIFdlZyBnZWdlYmVu
IGjDpHR0ZSwgd8O8cmRlIGljaCBhbnR3b3J0ZW4gOgoiV2VpbCBpY2ggZXMg
a2FubiIuIEFiZXIgaW0gRXJuc3QsIGljaCB3aWxsIGRhcyBQcm9ibGVtIGph
IG5pY2h0CmVyc2NobGFnZW4sIHNvbmRlcm4gZXMgbWlyIG51ciB2ZXJlaW5m
YWNoZW4uIFVuZCBEdSB3ZWnDn3QgamEsIGNvbXB1dGVyCnNpbmQgaGVydm9y
cmFnZW5kIGRhZsO8ciBnZWVpZ25ldCwgUHJvYmxlbWUgenUgbMO2c2VuLCBk
aWUgbWFuIG9obmUKQ29tcHV0ZXIgbmljaHQgaMOkdHRlOykKCj4KPiAgPiBH
aWJ0IGVzIGRlcmFydGlnZSBNZWNoYW5pc21lbiBzY2hvbiB1bmQgd2VubiBu
aWNodCwgd28gc29sbHRlIGljaCBkYQo+ICA+IGFuc2V0emVuLiBPZGVyIGlz
dCBkYXMgZWggZWluZSBibMO2ZGUgSWRlZSB2b24gbWlyIHVuZCBlcyBnaWJ0
IGFuZGVyZSwKPiAgPiBiZXNzZXJlICJiZXN0IHByYWN0aWNlcyIgdW0gbWVp
biBTaWVia29wZiB6dSBlbnRsYXN0ZW4/Cj4KPgo+IEVsZWdhbnRlciB3w6Ry
ZSBlaW4gU3lzdGVtIGF1cyBlaW5lbSBUZXN0LSB1bmQgZWluZW0gTGl2ZSBT
ZXJ2ZXIuIEF1ZiBkZW0KPiAgVGVzdHNlcnZlciBrYW5uc3QgZHUgcHJvYmll
cmVuLCB3YXMgZHUgd2lsbHN0LiBEZXIgTGl2ZSBTZXJ2ZXIgd2lyZCBudXIK
PiAgYXVzIGRlbSBWZXJzaW9uc2tvbnRyb2xsc3lzdGVtIGFrdHVhbGlzaWVy
dCwgbmljaHQgZGlyZWt0IMO8YmVyIGRpZQo+ICBLb25zb2xlLgo+CgpJbSB3
ZXNlbnRsaWNoZW4gbMOkdWZ0IGRhcyBoaWVyIGphIGF1Y2ggc28uCgo+ICBB
dWYgZGllIEFydCBzdGVsbHN0IGR1IHNpY2hlciwgZGFzIGFsbGUgw4RuZGVy
dW5nZW4gYXVjaCBpbSBTVk4gc2luZCAtCj4gIGRhenUgZ2Vow7ZydCBuYXTD
vHJsaWNoIGRlciBXaWxsZSAob2RlciB2aWVsbGVpY2h0IGF1Y2ggZGllIFRy
ZW5udW5nIGF1Zgo+ICB6d2VpIFBlcnNvbmVuKSwgZGFzIG5pY2h0IGtsZWlu
ZSDDhG5kZXJ1bmdlbiAibWFsIGViZW4iIHZvbiBIYW5kIGdlaGFja3QKPiAg
d2VyZGVuLgoKRGVyIEdlaXN0IGlzdCB3aWxsaWcsIGRvY2ggZGFzIEZsZWlz
Y2ggaXN0IHNjaHdhY2ggLi4uCgo+Cj4KPiAgQmlzIGRhbm4KCk1hbiBzY2hy
ZWlidCBzaWNoIC4uLgpSb2JlcnQKCi0tIApTZW50IHZpYSBwZ3NxbC1kZS1h
bGxnZW1laW4gbWFpbGluZyBsaXN0IChwZ3NxbC1kZS1hbGxnZW1laW5AcG9z
dGdyZXNxbC5vcmcpClRvIG1ha2UgY2hhbmdlcyB0byB5b3VyIHN1YnNjcmlw
dGlvbjoKaHR0cDovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tYWlscHJlZi9wZ3Nx
bC1kZS1hbGxnZW1laW4K
muellerrobert [ Mi, 02 April 2008 22:26 ] [ ID #1933786 ]

Re: Trigger für DDL Änderungen

This is a multi-part message in MIME format.
--------------000208010407010005090608
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: quoted-printable

Guten Morgen,

da das nicht direkt in der DB geht mach es doch =C3=BCber einen cron job
ausserhalb. Z.B. k=C3=B6nntest du f=C3=BCr jeden Typ der dich interessier=
t
(Tabellen/Indizes/FK/Trigger ...) die DDL erstellen lassen und sichern
(bzw ein Hash o=C3=A4). Der cronjob w=C3=BCrde dies ebenfalls tun und dam=
it
vergleichen. Bei =C3=84nderungen klingelt der dann.

falls du was sinnvolles hast lass es mich bitte wissen.
Gruss
Thomas



Robert M=C3=BCller schrieb:
> Hallo Liste,
> Nachdem ich Siebkopf zum wiederholten Mal vergessen habe,
> DDL-=C3=84nderungen, die ich direkt in der Datenbank per psql vorgenomm=
en
> habe, in mein Versionskontrollsystem einzuchecken, kam mir folgende
> Idee: Es m=C3=BCsste doch m=C3=B6gliche sein, mit derartige =C3=84nderu=
ngen in der
> Datenbank irgendwie per Trigger abzufangen und im Trigger ein z.B.
> plsh Script abzuschiessen, was mir dann per Mail oder =C3=A4hnlichem ei=
nen
> Erinnerungsnackenschlag gibt.
>
> Gibt es derartige Mechanismen schon und wenn nicht, wo sollte ich da
> ansetzen. Oder ist das eh eine bl=C3=B6de Idee von mir und es gibt ande=
re,
> bessere "best practices" um mein Siebkopf zu entlasten?
>
> Sch=C3=B6ne Abend noch
> Robert
>
>


--------------000208010407010005090608
Content-Type: text/x-vcard; charset=utf-8;
name="t_markus.vcf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="t_markus.vcf"

YmVnaW46dmNhcmQNCmZuOlRob21hcyBNYXJrdXMNCm46TWFya3VzO1Rob21h
cw0Kb3JnOnByb3ZlbnRpcyBHbWJIDQphZHI6OztaaW1tZXJzdHIuIDc5LTgw
O0JlcmxpbjtCZXJsaW47MTAxMTc7R2VybWFueQ0KZW1haWw7aW50ZXJuZXQ6
dC5tYXJrdXNAcHJvdmVudGlzLm5ldA0KdGVsO3dvcms6KzQ5IDMwIDI5IDM2
IDM5OSAyMg0KeC1tb3ppbGxhLWh0bWw6RkFMU0UNCnVybDpodHRwOi8vd3d3
LnByb3ZlbnRpcy5uZXQNCnZlcnNpb246Mi4xDQplbmQ6dmNhcmQNCg0K

--------------000208010407010005090608
Content-Type: text/plain
Content-Disposition: inline
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable


--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein [at] postgresql.o=
rg)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein

--------------000208010407010005090608--
Thomas Markus [ Do, 03 April 2008 08:18 ] [ ID #1934701 ]

Re: Tr

* Robert Müller <muellerrobert [at] gmail.com> schrieb:

> Nachdem ich Siebkopf zum wiederholten Mal vergessen habe, DDL-
> =C4nderungen, die ich direkt in der Datenbank per psql vorgenommen
> habe, in mein Versionskontrollsystem einzuchecken, kam mir folgende
> Idee: Es müsste doch mögliche sein, mit derartige =C4nderungen in der
> Datenbank irgendwie per Trigger abzufangen und im Trigger ein z.B.
> plsh Script abzuschiessen, was mir dann per Mail oder ähnlichem
> einen Erinnerungsnackenschlag gibt.

Nein, das willst Du bestimmt nicht - damit wird nur alles noch
schlimmer (komplizierter) !

Du solltest garnicht via psql am Schema spielen, sondern *alles*
sauber in Scripte fassen, die beim rollout eingespielt werden.

Generell bietet es sich an, auch mit SQL modular zu arbeiten:
Clients bekommen nur ihre eigenen Views zu sehen. Die DB ist aus
QM-Sicht auch bloß eine Library, die entsprechende Interfaces
bietet (Interna sind per Def. verborgen). Du darfst nur neue
Interfaces bauen und evtl. obsolete abreißen. Entwicklung an
der DB und den Clients sind *grundverschiedene* Dinge, die nicht
vermischt werden dürfen. Nur so kannst Du dauerhaft echte
Konsistenz sicherstellen.


cu
--
------------------------------------------------------------ ---------
Enrico Weigelt =3D=3D metux IT service - http://www.metux.de/
------------------------------------------------------------ ---------
Please visit the OpenSource QM Taskforce:
http://wiki.metux.de/public/OpenSource_QM_Taskforce
Patches / Fixes for a lot dozens of packages in dozens of versions:
http://patches.metux.de/
------------------------------------------------------------ ---------

--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein [at] postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein
weigelt [ Do, 03 April 2008 10:24 ] [ ID #1934702 ]

Re: Trigger für DDL Änderungen

--On Mittwoch, April 02, 2008 20:11:04 +0000 Tim Landscheidt
<tim [at] tim-landscheidt.de> wrote:

> Schwierig finde ich eigentlich nur, dass PostgreSQL bei
> Views sehr verschwenderisch mit expliziten Casts umgeht.
> Selbst NULLs bekommen den Datentyp der Zielspalte verpasst.
> Eine View, die aus meiner Adressdatenbank die Straßenangaben
> in Straße und Hausnummer trennt, wird dadurch zu:

Ich verstehe diesen Einwand nicht. Nichts anderes passiert implizit intern=

mit deiner Query nachdem bspw. alles erstmal 'unknown' ist. Man kann
eigentlich nur froh sein, das PostgreSQL und dessen Typesystem smart genug=

ist und dich nicht zwingt, das bereits bei deiner Eingabe zu spezifizieren=

(da gibts ganz andere Datenbanken....).

--
Thanks

Bernd

--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein [at] postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein
Bernd Helmle [ Do, 03 April 2008 16:04 ] [ ID #1934707 ]

Re: Trigger fürDDLÄnderungen

Bernd Helmle <mailings [at] oopsware.de> wrote:

>> Schwierig finde ich eigentlich nur, dass PostgreSQL bei
>> Views sehr verschwenderisch mit expliziten Casts umgeht.
>> Selbst NULLs bekommen den Datentyp der Zielspalte verpasst.
>> Eine View, die aus meiner Adressdatenbank die Straßenangaben
>> in Straße und Hausnummer trennt, wird dadurch zu:

> Ich verstehe diesen Einwand nicht. Nichts anderes passiert
> implizit intern mit deiner Query nachdem bspw. alles erstmal
> unknown' ist. Man kann eigentlich nur froh sein, das
> PostgreSQL und dessen Typesystem smart genug ist und dich
> nicht zwingt, das bereits bei deiner Eingabe zu
> spezifizieren (da gibts ganz andere Datenbanken....).

Ich bin aber keine Datenbank, und mein Parser braucht we-
sentlich länger für den Ausdruck:

| "substring"(addresses.street::text, 1, rindex("substring"(addresses.stree=
t::text, 1, "position"(addresses.street::text, ' - '::text) - 1)::character=
varying, ' '::character varying) - 1)

als für die Variante:

| SUBSTRING(Street, 1, RINDEX(SUBSTRING(Street, 1, POSITION(Street, ' - ') =
- 1), ' ') - 1)

vor allem, da ich bei der ersten Fassung bei jedem Wert prü-
fen muss, ob der Tabellenname oder der Cast hinzugefügt wur-
de, weil eine Verwechslungsmöglichkeit besteht oder nicht.
Insbesondere, wenn man Datenstrukturen anderer Autoren oder
eigener vergangener Zeiten (wieder) verstehen muss, geht ein
Großteil der Zeit und Konzentration sinnlos verloren.

Tim

--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein [at] postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein
Tim Landscheidt [ Do, 03 April 2008 16:29 ] [ ID #1934708 ]

Re: Trigger fürDDLÄnderungen

On Wed, 2 Apr 2008 22:26:38 +0200 Robert M=C3=BCller wrote:

> Am 02.04.08 schrieb Andreas 'ads' Scherbaum <adsmail [at] wars-nicht.de>:
> > On Wed, 2 Apr 2008 20:51:42 +0200 Robert M=C3=BCller wrote:
> >
> > Eleganter w=C3=A4re ein System aus einem Test- und einem Live Server. A=
uf dem
> > Testserver kannst du probieren, was du willst. Der Live Server wird nur
> > aus dem Versionskontrollsystem aktualisiert, nicht direkt =C3=BCber die
> > Konsole.
> >
>
> Im wesentlichen l=C3=A4uft das hier ja auch so.

Was heisst "im wesentlichen"?
Entweder es l=C3=A4uft so oder es l=C3=A4uft nicht so. Alles andere ist hal=
bgar
und damit wertlos.


> > Auf die Art stellst du sicher, das alle =C3=84nderungen auch im SVN si=
nd -
> > dazu geh=C3=B6rt nat=C3=BCrlich der Wille (oder vielleicht auch die Tr=
ennung auf
> > zwei Personen), das nicht kleine =C3=84nderungen "mal eben" von Hand g=
ehackt
> > werden.
>
> Der Geist ist willig, doch das Fleisch ist schwach ...

Deshalb trennt man das auch auf zwei Personen auf: eine entwickelt die
DB =C3=84nderungen, die andere spielt sie ein. Die erste Person hat dabei
maximal Zugriffsrechte f=C3=BCr die Test Datenbank, jedoch nie f=C3=BCr die=
Live
Systeme.

Auf die Art wird der Entwickler immer gefordert, ein sauberes Update zu
schreiben - weil der DB Admin f=C3=BCr die Live DB seine psql Hacks nicht
akzeptiert.

Wenn du dich selbst nicht dazu zwingen kannst, wird dir auch kein
Kontrollsystem helfen - du wirst immer Weg finden, das "mal eben" zu
umgehen.


Bis dann

--
Andreas 'ads' Scherbaum
German PostgreSQL User Group
European PostgreSQL User Group - Board of Directors

--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein [at] postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein
adsmail [ Do, 03 April 2008 23:08 ] [ ID #1934710 ]

Re: Trigger für DDL Änderungen

QW0gMDMuMDQuMDggc2NocmllYiBBbmRyZWFzICdhZHMnIFNjaGVyYmF1bSA8
YWRzbWFpbEB3YXJzLW5pY2h0LmRlPjoKPiBEZXNoYWxiIHRyZW5udCBtYW4g
ZGFzIGF1Y2ggYXVmIHp3ZWkgUGVyc29uZW4gYXVmOiBlaW5lIGVudHdpY2tl
bHQgZGllCj4gIERCIMOEbmRlcnVuZ2VuLCBkaWUgYW5kZXJlIHNwaWVsdCBz
aWUgZWluLiBEaWUgZXJzdGUgUGVyc29uIGhhdCBkYWJlaQo+ICBtYXhpbWFs
IFp1Z3JpZmZzcmVjaHRlIGbDvHIgZGllIFRlc3QgRGF0ZW5iYW5rLCBqZWRv
Y2ggbmllIGbDvHIgZGllIExpdmUKPiAgU3lzdGVtZS4KPgo+ICBBdWYgZGll
IEFydCB3aXJkIGRlciBFbnR3aWNrbGVyIGltbWVyIGdlZm9yZGVydCwgZWlu
IHNhdWJlcmVzIFVwZGF0ZSB6dQo+ICBzY2hyZWliZW4gLSB3ZWlsIGRlciBE
QiBBZG1pbiBmw7xyIGRpZSBMaXZlIERCIHNlaW5lIHBzcWwgSGFja3Mgbmlj
aHQKPiAgYWt6ZXB0aWVydC4KPgo+ICBXZW5uIGR1IGRpY2ggc2VsYnN0IG5p
Y2h0IGRhenUgendpbmdlbiBrYW5uc3QsIHdpcmQgZGlyIGF1Y2gga2Vpbgo+
ICBLb250cm9sbHN5c3RlbSBoZWxmZW4gLSBkdSB3aXJzdCBpbW1lciBXZWcg
ZmluZGVuLCBkYXMgIm1hbCBlYmVuIiB6dQo+ICB1bWdlaGVuLgo+Cj4KClZp
ZWxsZWljaHQga2FtIGRhcyBqYSBuaWNodCBnYW56IGtsYXIgcsO8YmVyLCBk
YXMgUHJvYmxlbSBpc3QgbmljaHQsCmRhc3MgaWNoLCB3aWUgdm9uIERpciBr
b2xwb3J0aWVydCwgaW4gZGVyIExpdmVEQiBydW1wZnVzY2hlLCBzb25kZXJu
LApkYXNzIGljaCBlaW5mYWNoIGVpbmUgSGlsZmVzdGVsbHVuZyB3aWxsLCBk
aWUgbWljaCB6dW0gQWJsYXVmIGRlcwpUYWdlcyBpbSBlaW5mYWNoc3RlbiBG
YWxsIGVyaW5uZXJ0OiAiRWgsIER1IGhhc3Qgd2FzIGFuIGRlciBEQgpnZW1h
Y2h0LCBoYXN0IER1IGVzIGRlbm4gYXVjaCBlaW5nZWNoZWNrdCEiLiBFcyBn
ZWh0IG5pY2h0IGRhcnVtLCBkYXNzCmljaCB3YXMgbWl0IEFic2ljaHQgaGlu
dGVyZ2VoZW4gd2lsbC4KCkRhcyBkYXMgUnVtZG9rdG9ybiBpbiBkZW4gU3lz
dGVtdGFiZWxsZW4gZWluZSBTY2huYXBzaWRlZSBpc3QsIGhhdHRlCmljaCBq
YSBzY2hvbiBpbSBFaW5nYW5nc3Bvc3RpbmcgdmVybXV0ZXQgdW5kIGlociBo
YWJ0IG1pY2ggZGFyaW4KYmVzdMOkdGlndC4gSWNoIGFyYmVpdGUgamV0enQg
YW4gZWluZW0gQmFzaHNjcmlwdCwgd2FzIG1pciBnZcO8d25zY2h0ZQpPYmpl
a3RlIGF1cyBkZXIgREIgZXh0cmFoaWVydCB1bmQgaW4gbWVpbmUgRGF0ZWlz
dHJ1a3R1ciBlaW5wZmxlZ3QuCkRhZHVyY2ggZXJoYWx0ZSBpY2ggZWluZW4g
REItU25hcHNob3QgaW4gZGVyIHZvbiBtaXIgcHLDpGZlcmllcnRlbgpGb3Jt
LgoKU2Now7ZuZXMgV29jaGVuZW5kZQpSb2JlcnQKCi0tIApTZW50IHZpYSBw
Z3NxbC1kZS1hbGxnZW1laW4gbWFpbGluZyBsaXN0IChwZ3NxbC1kZS1hbGxn
ZW1laW5AcG9zdGdyZXNxbC5vcmcpClRvIG1ha2UgY2hhbmdlcyB0byB5b3Vy
IHN1YnNjcmlwdGlvbjoKaHR0cDovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tYWls
cHJlZi9wZ3NxbC1kZS1hbGxnZW1laW4K
muellerrobert [ Fr, 04 April 2008 15:02 ] [ ID #1935506 ]
Datenbanken » gmane.comp.db.postgresql.german » Trigger für DDL Änderungen

Vorheriges Thema: Apache vs PostgreSQL
Nächstes Thema: Check Constraint mit Subselect