成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PostgreSQL 5.7. Schemas 筆記

617035918 / 389人閱讀

摘要:筆記一個數(shù)據(jù)庫包含多個里包含的下一層邏輯結(jié)構(gòu)就是也包括各種不同里的名可以相同在創(chuàng)建一個新的時,會自動為其創(chuàng)建一個名為的。如果未設(shè)置變量,那么會將你創(chuàng)建的所有對象默認(rèn)放入中。執(zhí)行就能看到其名稱。

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.

一個數(shù)據(jù)庫包含多個schema, schema里包含tables, database 的下一層邏輯結(jié)構(gòu)就是 schema

schema 也包括各種 objects, data types, functions, operators

不同schem里的table名可以相同

在創(chuàng)建一個新的 database 時, PostgreSQL 會自動為其創(chuàng)建一個 名為 public 的 schema。 如果未設(shè)置 search_path 變量,那 么 PostgreSQL 會將你創(chuàng)建的所有對象默認(rèn)放入 public schema 中。_

使用schema帶來的好處

允許多用戶使用一個數(shù)據(jù)庫而不會相互干擾, 數(shù)據(jù)隔離

將數(shù)據(jù)庫對象組織到邏輯組中以使其更易于管理

第三方應(yīng)用程序可以放在多帶帶的模式中, 這樣它們就不會與其他對象的名稱沖突

5.7.1. Creating a Schema

code example:

CREATE SCHEMA myschema;

訪問schema的表

schema.table

實際上,更通用的語法

database.schema.table

在schema里創(chuàng)建表

CREATE TABLE myschema.mytable (
 ...
);

刪除空schema

DROP SCHEMA myschema;

刪除schema 并且也刪除其中的對象

DROP SCHEMA myschema CASCADE;

為某個用戶創(chuàng)建schema

CREATE SCHEMA schemaname AUTHORIZATION username;
5.7.2. The Public Schema

默認(rèn)創(chuàng)建的表都在public schema

下面兩條語句是等價的

CREATE TABLE products ( ... );
CREATE TABLE public.products ( ... );
5.7.3. The Schema Search Path

當(dāng)執(zhí)行類 似 SELECT * FROM dogs 這種語句時, PostgreSQL 是怎么知道要查的是哪個 schema 中的表 呢?

可以加schema前綴解決, 也可以設(shè)置 search_path 變量解決

查看

SHOW search_path;
search_path
--------------
 "$user",public
PostgreSQL 有一個少為人知的系統(tǒng)變量叫作 user , 它代表了當(dāng)前登錄用戶的名稱。 執(zhí)行 SELECT user 就能看到其名稱。
對于search_path 里的$user, 如果當(dāng)前登錄的角色是 doggy, 那么所有的查詢都會優(yōu)先去 doggy schema 中尋找目標(biāo)表, 如果找不到才會去 public schema 下找

設(shè)置新的schema倒search path里

SET search_path TO myschema,public;

這樣 默認(rèn) 創(chuàng)建訪問 table 都在 myschema schema里

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/39032.html

相關(guān)文章

  • 升級 postgresql

    摘要:但如果涉及到跨大版本升級比如升級到,這種直接替換軟件就不行了,因為跨版本的內(nèi)部存儲形式發(fā)生了變化官方對于升級提供了種方法,這里遷移我使用了來進行處理細(xì)節(jié)可以參考官方文檔。 1 場景描述 最近使用 postgresql 命令行比較多,就找了個類似 mycli 工具,pgcli,這個是針對 postgresql 的,興沖沖的安裝了 brew install pgcli 沒想到這貨自動幫我...

    learn_shifeng 評論0 收藏0
  • PostgreSQL獲取用戶下所有對象的權(quán)限情況

    摘要:直接切換到對應(yīng)的庫下執(zhí)行注意,這個不能獲取到和的歸屬情況,只能獲取到表和序列的的情況上面的這個,能查出下面的這種歸屬的對于下面的這種情況,都查不出來的。表的是一個,表里面又有其它的授權(quán)非的下 直接切換到對應(yīng)的庫下執(zhí)行select nsp.nspname as SchemaName ,cls.relname a...

    番茄西紅柿 評論0 收藏2637
  • postgresql學(xué)習(xí)筆記1---安裝和psql基本操作

    本文是PostgreSQL修煉之道這本書的學(xué)習(xí)筆記,記錄下疑惑或不解的地方. 這里也列一些資源: 官方文檔:http://www.postgresql.org/files/documentation/pdf/9.4/postgresql-9.4-A... 中文文檔:http://www.php100.com/manual/PostgreSQL8/ 阮一峰的博客:http://www.ruanyif...

    GeekQiaQia 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<