2017-11-15 4 views
0

Dieses Problem beim Versuch, den Suchpfad zu meiner neuen Redshift-Datenbank zu ändern.SET/RESET-Befehl in ALTER DATABASE wird nicht unterstützt

Derzeit habe ich den Inhalt meiner MySQL db über AWS 'Data Migration Service in einen Redshift-Cluster migriert. Die Daten wurden in ein Schema importiert. Rufen Sie my_schema auf. Wenn ich versuche, Abfragen für die Cluster auszuführen erfordert es mir Tabellennamen mit dem Schemanamen Präfix

dh

select * from my_schema.my_table

ich das Setup ändern wollte, so dass ich den Tisch direkt verweisen können, ohne dass das Präfix. Nach einigem Hinsehen habe ich herausgefunden, dass dies möglich ist, indem man das Attribut search_path modifiziert.

Zuerst habe ich versucht, dies zu tun, indem Sie

set search_path = "$user", my_schema;

Dies schien aber zu arbeiten dann erkannte ich, dass dies einfach ist im Rahmen der aktuellen Sitzung my_schema als Standardschema einstellen, wollte ich es eingestellt auf einer Datenbankebene. Ich fand mehrere Quellen sagen, dass die Art und Weise, dies zu tun war wie so den alten Befehl verwenden ...

alter database my_db set search_path = "$user", public, my_schema

jedoch diesen Befehl Ergebnisse in den folgenden Fehlern ausgeführt, die irgendwie in 0 Google-Ergebnissen zeigen mich:

SET/RESET commmand in ALTER DATABASE is not supported

ich ziemlich verwirrt bin, wie der obige Fehler hat darüber nie einen Beitrag gemacht hatte, aber ich bin auch ziemlich interessiert, herauszufinden, wie mein erstes Problem zu beheben, einen globalen Standard der Einstellung Schema für meinen Rotverschiebungscluster.

+0

[Postgres und Amazon Redshift] (http://docs.aws.amazon.com/redshift/latest/dg/c_redshift-and-postgres-sql.html) sind zwei verschiedene Systeme. [ALTER DATABASE in der Dokumentation] (http://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_DATABASE.html) – klin

Antwort

1

ALTER DATABASE SET wird in Redshift nicht unterstützt. Sie können jedoch/RESET Konfigurationsparameter auf der Benutzerebene mit der ALTER USER SET SEARCH_PATH TO <SCHEMA1>,<SCHMEA2>;

Bitte überprüfen Sie: http://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_USER.html http://docs.aws.amazon.com/redshift/latest/dg/r_search_path.html

Wenn Sie die search_path zu <SCHEMA1>,<SCHMEA2> in db1 für einen Benutzer eingestellt es nicht nur aktuelle Sitzung ist, wird es für alle zukünftigen Sitzungen festgelegt werden.

Verwandte Themen