关于模式的两个问题【已试验解决】
时间:2010-09-27
来源:互联网
本帖最后由 大红机器 于 2010-09-27 15:13 编辑
问题一:如何查看指定模式下的对象?
复制代码
我建立了一个叫mysch的模式,并且在这个模式下建立了一个表tt
然后使用\dt mysch却看不到
原来什么都看不到
复制代码
修改search_path
复制代码
可以看到了
复制代码
但是\dt mysch看不到
复制代码
然后我又在public下建立了同名表tt
复制代码
这时又出现问题了:
用\dt发现public模式下的tt表看不到了……
复制代码
查看mysch下的tt,可以查询
复制代码
插入数据到public.tt
复制代码
查看mysch.tt,没有数据
复制代码
查看public.tt,数据已经插入成功
复制代码
晕了,求高手解惑
问题一:如何查看指定模式下的对象?
- \dt[S+] [模式] 列出表
然后使用\dt mysch却看不到
原来什么都看不到
- postgres=# \dt
- No relations found.
- postgres=# set search_path to mysch,"$user",public;
- SET
- postgres=# show search_path;
- search_path
- ------------------------
- mysch, "$user", public
- (1 row)
- postgres=# \dt
- List of relations
- Schema | Name | Type | Owner
- --------+------+-------+----------
- mysch | tt | table | postgres
- (1 row)
- postgres=# \dt mysch
- No matching relations found.
- postgres=# create table public.tt(x varchar(8));
- CREATE TABLE
用\dt发现public模式下的tt表看不到了……
- postgres=# \dt
- List of relations
- Schema | Name | Type | Owner
- --------+------+-------+----------
- mysch | tt | table | postgres
- (1 row)
- postgres=# select * from tt;
- x
- ---
- (0 rows)
- postgres=# insert into public.tt values(5);
- INSERT 0 1
- postgres=# select * from tt;
- x
- ---
- (0 rows)
- postgres=# select * from public.tt;
- x
- ---
- 5
- (1 row)
作者: 大红机器 发布时间: 2010-09-27
又添加了一个模式tst,建立同名表tt,发现也看不到
把search_path中顺序改变一下,将tst放在前面,就显示tst的tt表了,mysch和public又消失了……
结论:看起来如果表同名,只显示search_path中第一个模式的表,不同名的则完全显示
把search_path中顺序改变一下,将tst放在前面,就显示tst的tt表了,mysch和public又消失了……
结论:看起来如果表同名,只显示search_path中第一个模式的表,不同名的则完全显示

作者: 大红机器 发布时间: 2010-09-27
第一个问题也试验出来了
复制代码
原来要加个点
- \dt mysch.

作者: 大红机器 发布时间: 2010-09-27
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28