达梦数据库,写SQL如何才能不带上模式名?

经常有朋友问到在DM数据库里面,为何SQL要加上模式名(数据库名)访问呢?

其实这是把Mysql或者SQLSERVER的思维代入DM数据库造成的,Mysql的

体系架构是单实例多库的,一个用户可以访问多个数据库,然后指定当前数据库写

SQL的时候就不用带上数据库名了。

     达梦的体系架构是单库多实例的,也就是没有多个数据库的概念了,从Mysql或者

SQLSERVER转到达梦,就需要建多个用户+表空间来对应Mysql的多个数据库。

例如MYSQL中有TESTDB1,TESTDB2两个库,都用root用户来访问,在达梦中第一步

就创建两个表空间:

CREATE TABLESPACE TESTDB1 DATAFILE 'TESTDB1.DBF' SIZE 128;
CREATE TABLESPACE TESTDB2 DATAFILE 'TESTDB2.DBF' SIZE 128;

第二步创建两个用户,授予对应的权限:

--以下SQL用SYSDBA用户登录执行

CREATE USER TESTDB1 IDENTIFIED BY "123456789" DEFAULT TABLESPACE TESTDB1;

CREATE USER TESTDB2 IDENTIFIED BY "123456789" DEFAULT TABLESPACE TESTDB2;

GRANT RESOURCE TO TESTDB1;

GRANT RESOURCE TO TESTDB2;

第三步:迁移Mysql TESTDB1数据库里面的表,数据库迁移工具就使用TESTDB1用户来迁移

              迁移Mysql TESTDB2数据库里面的表,数据库迁移工具就使用TESTDB2用户来迁移

第四步:访问TESTDB1用户(模式)下的表,就使用TESTDB1用户登录来访问,就不需要加模式名TESTDB1

 

如果要用JDBC来访问数据库,设置如下:

jdbc.driver=dm.jdbc.driver.DmDriver
jdbc.url=jdbc:dm://127.0.0.1:5236
jdbc.username=TESTDB1
jdbc.password=123456789
发布了13 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/myth8860/article/details/100557705