摘要:筆記一個數據庫包含多個里包含的下一層邏輯結構就是也包括各種不同里的名可以相同在創建一個新的時,會自動為其創建一個名為的。如果未設置變量,那么會將你創建的所有對象默認放入中。執行就能看到其名稱。
PostgreSQL 5.7. Schemas 筆記
https://www.postgresql.org/docs/9.4/ddl-schemas.html
A database contains one or more named schemas, which in turn contain tables. Schemas also contain other kinds of named objects, including data types, functions, and operators. The same object name can be used in different schemas without conflict; for example, both schema1 and myschema can contain tables named mytable. Unlike databases, schemas are not rigidly separated: a user can access objects in any of the schemas in the database he is connected to, if he has privileges to do so.
一個數據庫包含多個schema, schema里包含tables, database 的下一層邏輯結構就是 schema
schema 也包括各種 objects, data types, functions, operators
不同schem里的table名可以相同
在創建一個新的 database 時, PostgreSQL 會自動為其創建一個 名為 public 的 schema。 如果未設置 search_path 變量,那 么 PostgreSQL 會將你創建的所有對象默認放入 public schema 中。_
使用schema帶來的好處
允許多用戶使用一個數據庫而不會相互干擾, 數據隔離
將數據庫對象組織到邏輯組中以使其更易于管理
第三方應用程序可以放在多帶帶的模式中, 這樣它們就不會與其他對象的名稱沖突
5.7.1. Creating a Schemacode example:
CREATE SCHEMA myschema;
訪問schema的表
schema.table
實際上,更通用的語法
database.schema.table
在schema里創建表
CREATE TABLE myschema.mytable ( ... );
刪除空schema
DROP SCHEMA myschema;
刪除schema 并且也刪除其中的對象
DROP SCHEMA myschema CASCADE;
為某個用戶創建schema
CREATE SCHEMA schemaname AUTHORIZATION username;5.7.2. The Public Schema
默認創建的表都在public schema里
下面兩條語句是等價的
CREATE TABLE products ( ... ); CREATE TABLE public.products ( ... );5.7.3. The Schema Search Path
當執行類 似 SELECT * FROM dogs 這種語句時, PostgreSQL 是怎么知道要查的是哪個 schema 中的表 呢?
可以加schema前綴解決, 也可以設置 search_path 變量解決
查看
SHOW search_path;
search_path -------------- "$user",public
PostgreSQL 有一個少為人知的系統變量叫作 user , 它代表了當前登錄用戶的名稱。 執行 SELECT user 就能看到其名稱。
對于search_path 里的$user, 如果當前登錄的角色是 doggy, 那么所有的查詢都會優先去 doggy schema 中尋找目標表, 如果找不到才會去 public schema 下找
設置新的schema倒search path里
SET search_path TO myschema,public;
這樣 默認 創建訪問 table 都在 myschema schema里
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/39032.html
摘要:但如果涉及到跨大版本升級比如升級到,這種直接替換軟件就不行了,因為跨版本的內部存儲形式發生了變化官方對于升級提供了種方法,這里遷移我使用了來進行處理細節可以參考官方文檔。 1 場景描述 最近使用 postgresql 命令行比較多,就找了個類似 mycli 工具,pgcli,這個是針對 postgresql 的,興沖沖的安裝了 brew install pgcli 沒想到這貨自動幫我...
摘要:直接切換到對應的庫下執行注意,這個不能獲取到和的歸屬情況,只能獲取到表和序列的的情況上面的這個,能查出下面的這種歸屬的對于下面的這種情況,都查不出來的。表的是一個,表里面又有其它的授權非的下 直接切換到對應的庫下執行select nsp.nspname as SchemaName ,cls.relname a...
本文是PostgreSQL修煉之道這本書的學習筆記,記錄下疑惑或不解的地方. 這里也列一些資源: 官方文檔:http://www.postgresql.org/files/documentation/pdf/9.4/postgresql-9.4-A... 中文文檔:http://www.php100.com/manual/PostgreSQL8/ 阮一峰的博客:http://www.ruanyif...
閱讀 3252·2021-10-21 17:50
閱讀 3262·2021-10-08 10:05
閱讀 3393·2021-09-22 15:04
閱讀 589·2019-08-30 14:00
閱讀 1949·2019-08-29 17:01
閱讀 1515·2019-08-29 15:16
閱讀 3225·2019-08-26 13:25
閱讀 858·2019-08-26 11:44