- 第 1 章 PostgreSQL 安装
- 第 2 章 Administration
- 第 3 章 PostgreSQL 系统表
- 第 4 章 PostgreSQL 命令
- 第 5 章 数据定义(DDL)
- 第 6 章 DML
- 第 7 章 SQL
- 第 8 章 事务处理与锁
- 第 9 章 PostgreSQL GUI
- 第 13 章 Barman for PostgreSQL
- 第 11 章 pgbouncer - lightweight connection pooler for PostgreSQL
- 第 12 章 Foreign data wrappers
- 第 14 章 Connector
- 第 15 章 Replication
- 第 16 章 FAQ
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
第 5 章 数据定义(DDL)
第 5 章 数据定义(DDL)
目录
5.1. 模式
3.10 模式 一些用户为了使某些模块的表看起来清晰,一般他们采用“模块名_表名”: Auth_user Auth_group Bbs_topic Bbs_message PostgreSQL不必这样命名,可以使用Schema(模式)如: Auth.user Auth.group Bbs.topic Bbs.message 3.10.1 创建模式 CREATE SCHEMA your_schema; 例: CREATE SCHEMA btob; CREATE SCHEMA auction; 3.10.2 删除模式 DROP SCHEMA your_schema; 删除模式,并且同时删除模式下的(表,视图,触发器,过程……) DROP SCHEMA your_schema CASCADE; 例: DROP SCHEMA btob CASCADE; DROP SCHEMA btob CASCADE; 3.10.3 模式搜索路径 查看当前模式SHOW search_path ; netkiller=> SHOW search_path ; search_path -------------- $user,public (1 row) netkiller=> \dt List of relations Schema | Name | Type | Owner --------+-------------+-------+----------- public | company | table | netkiller public | group | table | netkiller public | groupmember | table | netkiller public | guestbook | table | netkiller public | prodorder | table | netkiller public | role | table | netkiller public | rolemember | table | netkiller public | system_log | table | netkiller public | templates | table | netkiller public | trust | table | netkiller public | user | table | netkiller public | user_log | table | netkiller public | userinfo | table | netkiller (13 rows) 如果不设置模式搜索路径,“\dt”只显示public模式下的表。 设置模式SET search_path TO public,btob,auction; netkiller=> SET search_path TO public,btob,auction; SET netkiller=> \dt List of relations Schema | Name | Type | Owner ---------+---------------+-------+----------- auction | messages | table | netkiller auction | product | table | netkiller auction | product_order | table | netkiller btob | directory | table | netkiller btob | trade | table | netkiller btob | trade_message | table | netkiller public | company | table | netkiller public | group | table | netkiller public | groupmember | table | netkiller public | guestbook | table | netkiller public | prodorder | table | netkiller public | role | table | netkiller public | rolemember | table | netkiller public | system_log | table | netkiller public | templates | table | netkiller public | trust | table | netkiller public | user | table | netkiller public | user_log | table | netkiller public | userinfo | table | netkiller (19 rows) netkiller=> -- ====================================================================== -- 'btob.directory' -- ====================================================================== Drop table btob.directory CASCADE; Create table btob.directory ( "id" Serial NOT NULL, "root_id" Integer NOT NULL Default 0, "name" Varchar(20)NOT NULL , "status" boolean Default 'true', "created" Timestamp Default current_timestamp, "modified" Timestamp Default current_timestamp, UNIQUE (id,root_id,name), PRIMARY KEY ("id") -- FOREIGN KEY (root_id) REFERENCES directory (id) ON DELETE CASCADE ); INSERT INTO btob.directory (id,root_id,name) VALUES (0,0,'/'); Alter table btob.directory add FOREIGN KEY (root_id) REFERENCES btob.directory (id) ON DELETE CASCADE; Create index "directory_index" on btob.directory using btree ("id","root_id","name");
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论