达梦数据库一个用户多个模式,如何设置默认模式

2025-10-29 00:52:49

1、在达梦数据库中创建用户后就会默认生成一个对应的模式。比如我们创建的TEST用户,对应产生一个TEST的模式,在该模式中就会包括表、视图、触发器等对象信息。

达梦数据库一个用户多个模式,如何设置默认模式

2、此时我们在TEST用户中心创建一个模式B

create SCHEMA B AUTHORIZATION TEST;

commit;

达梦数据库一个用户多个模式,如何设置默认模式

3、创建后我们刷新模式后可以看到新创建的模式B

达梦数据库一个用户多个模式,如何设置默认模式

4、select * from SYS.ALL_OBJECTS where ALL_OBJECTS.OWNER='TEST' 

AND ALL_OBJECTS.OBJECT_TYPE='SCH';

可以使用该命令查看TEST用户的所有模式,可以看到有B模式和TEST模式两个。

达梦数据库一个用户多个模式,如何设置默认模式

5、在B模式中创建一个新表tables表

达梦数据库一个用户多个模式,如何设置默认模式

6、此时如果查询tables表,命令:SELECT * FROM TABLES;

就会报错:

第1 行附近出现错误[-2106]:

无效的表或视图名[TABLES]

达梦数据库一个用户多个模式,如何设置默认模式

1、可以看到,原因是因为默认用户查询的模式就是该用户自己创建的与其一致的模式中的内容。

我们如果带上模式名去查询就没有问题,比如:

SELECT * FROM B.TABLES;

达梦数据库一个用户多个模式,如何设置默认模式

2、那么这种情况如何不带模式名查询呢?

我们可以使用命令:set SCHEMA B;

设置B为当前的默认模式

达梦数据库一个用户多个模式,如何设置默认模式

3、然后直接查询:

SELECT * FROM TABLES;

可以看到可以直接查到结果。

达梦数据库一个用户多个模式,如何设置默认模式

4、但是如果查TEST模式的话就需要带上模式名了,否则同样也会报错。

达梦数据库一个用户多个模式,如何设置默认模式

1、对于一个用户有多种模式的情况下,如果不想带模式名去查询,可以使用命令:set schma 模式名的方法,设置当前默认的模式名。但需要注意的是,此方式是临时会话生效。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢