我有一个带有5个模式的PostgreSQL数据库userdb
。
Schema 1- Persons
Schema 2- Project
Schema 3- Shop
Schema 4- Test
我可以使用pg_connect
连接到数据库。如何访问该数据库中的特定架构?
当数据库中只有一个时,我能够连接到模式。但是现在因为我有多个模式,所以我很难访问任何特定模式。
<?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);
?>
答案 0 :(得分:4)
使用架构名称
限定表格select *
from my_schema.aircraft
答案 1 :(得分:2)
架构 - 将表名限定为已建议的@Clodoaldo。或者设置 search_path
以获得永久效果。它的工作方式与文件系统中的搜索路径非常相似。
永久性取决于您如何设置它。在此相关答案中查找选项的详细评估:
How does the search_path influence identifier resolution and the "current schema"
答案 2 :(得分:0)
使用:
SET search_path TO myschema;或
SET search_path TO myschema,myschemab;