Ich habe einen Auslöser, aber ich muss mit allen Tabellen meiner Postgres verbinden. Gibt es einen solchen Befehl unten?
%Vor%Nun, es gibt keine datenbankweite Triggererstellung, aber für alle solchen Massenadministrationsoperationen könnten Sie PostgreSQL-Systemtabellen verwenden, um Abfragen für Sie zu generieren, anstatt sie manuell zu schreiben. In diesem Fall könnten Sie Folgendes ausführen:
%Vor%Damit erhalten Sie eine Reihe von Strings, die SQL-Befehle sind wie:
%Vor% Sie müssen sie nur einmal ausführen (entweder durch psql
oder pgAdmin).
Jetzt eine Erklärung:
information_schema.tables
system table aus. Da Daten von buchstäblich allen Tabellen vorhanden sind, denken Sie daran, pg_catalog
und information_schema
schemas und Toast-Tabellen von Ihrem select
auszuschließen. quote_ident(text)
function, die den String bei Bedarf in doppelte Anführungszeichen ( ""
) setzt (dh Namen mit Leerzeichen oder Großbuchstaben erfordern das). quote_ident(table_schema) || '.' || quote_ident(table_name)
anstelle von tab_name
. Tags und Links triggers database postgresql