为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: dm8
【操作系统】:centos8
【CPU】:
【问题描述】*:语句查询为什么要加实例名称如下,第一个查询正确,第二个提示表不存在
select * from "hongan"."SYS_MENU";
select * from SYS_MENU;
登录账号不同,默认模式名不同,可使用set schema 模式名;修改默认模式名。
例如:
SYSDBA登录,默认模式名为SYSDBA
查询TEST模式下的TEST表如下 select * from TEST.TEST;
执行 set schema TEST;
再执行查询就不会报错 select * from TEST;
你提到的“实例名”,这里其实理解有误,在达梦数据库中,SQL语句查询,所加的实际是模式名,每创建一个用户,数据库会自动创建一个模式,表,视图,序列,触发器,函数,存储过程等对象是存放在模式下的
如果数据库创建了A用户,那么数据库自动创建了A模式,假如登录A用户创建了T1表,那么用A用户select可以直接查询到A表(select * from t1)
如果使用B用户查询A用户A模式下的T1表,首先确保有对应的表查询权限,其次SQL查询就需要加上模式名了(select * from A.T1)
达梦数据库一个用户下必有一个同名的模式。
表是存放在模式下的,你查询表如果不加模式名数据库会自动到登录用户同名的模式下去查这张表,如果要查询其他模式下的表需要在查询表时把模式名加上