Hallo zusammen,
ich bin neu hier und möchte mich kurz vorstellen:
ich bin seit 15 Jahren IT Consultant im Enterprise Management Umfeld und habe habe Programmiererfahrung mit der Programmiersprache Perl. Mit Datenbanken hatte ich natürlich immer wieder zu tun, aber eigene Datenbanken hatte ich bisher weder programmiert noch aufgesetzt. Bisher …
Bisher hatte ich folgendes erfolgreich im Einsatz: auf einem Server eine Datenbank mit mehreren Tabellen. Nun möchte ich aber die Informationen, welche ich bisher in den Tabellen in einer Datenbank hatte auf zwei Datenbanken auf dem selben Server unterteilen (aus welchem Grund auch immer). In einer Tabelle habe ich einen Trigger und führe ein Insert in eine andere Tabelle durch. Die Datenbank eins hat einen anderen Owner als die Datenbank zwei.
Nun funktioniert jedoch das Insert in die Tabelle der Datenbank zwei nicht mehr
In der Datenbank eins befindet sich “Quelle” ‘event’, und in der zweiten Datenbank das Ziel ‘alarmonevent’. Hier die Infos von der Datenbank eins:
BEGIN;
DROP TRIGGER IF EXISTS ti_alarm ON event;
CREATE OR REPLACE FUNCTION fi_alarm() RETURNS TRIGGER AS $$
BEGIN
INSERT INTO alarmonevent (createtime, remoteid, state_no, alias, state_msg) values (NEW.createtime, NEW.id, NEW.state_no, NEW.alias, NEW.state_msg);
return new;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER ti_alarm AFTER INSERT ON event FOR EACH ROW
EXECUTE PROCEDURE fi_alarm();
END;
Sicherlich mus ich “nur” das Kommando “INSERT INTO alarmonevent …” abändern, da ja jetzt das Ziel in einer anderen Datenbank liegt, aber ich weiß nicht wie. Ich habe in der zweiten Datenbank zusätzlich noch Berechtigung für den Benutzer der Datenbank eins vergeben:
GRANT INSERT ON alarmonevent TO user_db1;
Im Internet gibt es zwar eine Menge Einträge zu dieser Thematik, jedoch finde ich keine Lösung für mich. Das liegt sicherlich auch an meinen Unkenntnissen bezüglich SQL Programmierung
Vielleicht kann mich hier jemand an das Problem heranführen oder mir Hilfestellung geben. Vielen Dank vorab an alle, die sich meiner annehmen
mfg André