我接触过一点mysql编程。在那里我们可以在同一用户下为不同的项目创建单独的数据库。例如(大学数据库,医院数据库)我们如何在 oracle sql 中实现这一点?我想要一个命令行解决方案。即sqlplus。 sqlplus出现的问题是,一旦出现两张不同数据库的同名表,就会报错。如何在同一用户下为每个项目创建不同的环境?
最佳答案
当您习惯了 MySQL 世界时,开始使用 Oracle RDBMS 可能会有些困惑。 MySQL 中的用户不拥有数据库对象:表/ View /等,所有数据库对象都属于数据库。在 Oracle 中,所有对象都属于方案(用户的同义词,表明该用户拥有数据库对象)。
我想向您展示在 MySQL 和 Oracle 中完成相同任务的不同方法:
设置当前数据库(MySQL)/设置当前模式(Oracle)
MySQL:
use db_name;
甲骨文:
alter session set current_schema = schema_name;
创建完全限定的表:
MySQL:
create table db_name.table_name ...
甲骨文:
create table schema_name.table_name ...
从另一个数据库/模式表中选择
MySQL:
select * from database_name.table_name where ...
甲骨文:
select * from user_owning_table.table_name where ...
所以您基本上想为您的新项目创建另一个 Oracle 模式(我们称之为“医院”):
create user hospital identified by "<password>";
create table hospital.employee( ... );
create table college.employee ( ... );
grant select, insert, update, delete on hospital.employee to human_user;
grant select, insert, update, delete on college.employee to human_user;
sqlplus human_user@your_tnsnames_alias
SQL> insert into hospital.employee(...) values(...);
SQL> insert into college.employee(...) values(...);
关于mysql - 在oracle中创建属于同名不同问题的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34830783/