0

userdb5 つのスキーマを持つ PostgreSQL データベースがあります。

Schema 1- Persons
Schema 2- Project
Schema 3- Shop
Schema 4- Test

を使用してデータベースに接続できましたpg_connect。そのデータベース内の特定のスキーマにアクセスするにはどうすればよいですか?

データベースにスキーマが 1 つしかない場合でも、スキーマに接続できました。しかし、今は複数のスキーマがあるため、特定のスキーマにアクセスするのが困難です。

 <?php
 // attempt a connection
 $dbh = pg_connect("host=**.****.*******.*** dbname=test user=merlin port=5433 password=passw123");
 if (!$dbh) {
     die("Error in connection test: " . pg_last_error());
 } 
// execute query
 $sql = "SELECT * FROM test.country";
 $result = pg_query($dbh, $sql);
 if (!$result) {
     die("Error in SQL query: " . pg_last_error());
 }       

 // iterate over result set
 // print each row
 while ($row = pg_fetch_array($result)) {
     echo "Country code: " . $row[0] . "<br />";
     echo "Country name: " . $row[1] . "<p />";
 }       

 // free memory
 pg_free_result($result);       

 // close connection
 pg_close($dbh);      
?>
4

3 に答える 3

6

テーブルをスキーマ名で修飾します

select *
from my_schema.aircraft
于 2013-04-19T17:22:22.640 に答える
3

使用:
myschema に search_path を設定します。また

myschema、myschemab に search_path を設定します。

https://www.postgresql.org/docs/9.4/static/ddl-schemas.html

于 2016-06-30T18:36:51.120 に答える
3

Clodoaldo がすでにアドバイスしたように、テーブル名をスキーマ修飾します。またはsearch_path永続的な効果を設定します。これは、ファイル システムの検索パスのように機能します。

永続性は、設定方法によって異なります。見る:

于 2013-04-19T19:03:24.107 に答える