2017-11-15 9 views
0

新しいRedshiftデータベースへのsearch_pathを変更しようとすると、この問題が発生しました。ALTER DATABASEのSET/RESETコマンドはサポートされていません

現在、私はMySQLデータベースの内容をAWSのデータ移行サービスを介してレッドシフトクラスタに移行しました。データはスキーマにインポートされ、my_schemaを呼び出すことができます。私は、クラスタに対してクエリを実行しようとすると、それは

select * from my_schema.my_table

は私が必要とすることなく、テーブルを直接参照できるように設定を変更したい

すなわちスキーマ名でテーブル名の前に付けるために私を必要とし接頭辞。私は周りを見回した後、search_path属性を変更することでこれが可能であることがわかりました。

まず私は

set search_path = "$user", my_schema;

これを実行することでこれをやってみましたが動作するように見えたが、その後、私は、これは単に現在のセッションのコンテキストでデフォルトのスキーマとしてMY_SCHEMAを設定したことに気づき、私はそれを設定したかったですデータベースレベルで私はいくつかのソースがこれを行う方法は、何とか0 Googleの検索結果に表示され、次のエラーで、このコマンドの結果を実行している、しかし、そう...

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

などのALTERコマンドを使用していたと言いました:

SET/RESET commmand in ALTER DATABASE is not supported

私はかなり上記のエラーは今までそれについて行わポストを持っていないかに困惑していますが、私はまた、グローバルなデフォルト設定の私の最初の問題を解決する方法を考え出すではかなり興味私の赤方偏移クラスタのスキーマ。

+0

[PostgresとAmazon Redshift](http://docs.aws.amazon.com/redshift/latest/dg/c_redshift-and-postgres-sql.html)は、2つの異なるシステムです。 [ドキュメントのALTER DATABASE](http://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_DATABASE.html) – klin

答えて

1

ALTER DATABASE SETは、Redshiftではサポートされていません。しかし、あなたは確認してくださいALTER USER SET SEARCH_PATH TO <SCHEMA1>,<SCHMEA2>;

を使用して、ユーザレベルでの/ RESETの設定パラメータを設定することができます。http://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_USER.html http://docs.aws.amazon.com/redshift/latest/dg/r_search_path.html

をあなたはそれだけで現在のセッションではないユーザーのためにsearch_pathdb1<SCHEMA1>,<SCHMEA2>に設定すると、それは意志将来のすべてのセッションに設定する必要があります。

関連する問題