在oracle中创建属于同名不同问题的表
Create Tables belonging to different problems with same name in oracle
我参与了一些mysql编程。我们可以在同一用户下为不同的 projects.e.g.(大学数据库,医院数据库)创建单独的数据库 我们如何在 oracle sql 中实现?我想要一个命令行 solution.I.e。 sql加上。
sqlplus出现的问题是,一旦出现两张不同数据库的表重名,就会报错。同一个用户下每个项目都有不同的环境怎么办?
当您习惯了 MySQL 世界时,开始使用 Oracle RDBMS 可能会有些混乱。
MySQL 中的用户不拥有数据库对象:tables/views/etc,所有数据库对象都属于数据库。在 Oracle 中,所有对象都属于方案(用户的同义词,表明该用户拥有 DB 对象)。
我想向您展示在 MySQL 和 Oracle 中完成相同任务的不同方法:
设置当前数据库 (MySQL)/设置当前模式 (Oracle)
MySQL:
use db_name;
甲骨文:
alter session set current_schema = schema_name;
创建完全限定 table:
MySQL:
create table db_name.table_name ...
甲骨文:
create table schema_name.table_name ...
Select 来自另一个 DB/schema table
MySQL:
select * from database_name.table_name where ...
甲骨文:
select * from user_owning_table.table_name where ...
所以您基本上想为您的新项目创建另一个 Oracle 模式(我们称之为 "hospital"):
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编程。我们可以在同一用户下为不同的 projects.e.g.(大学数据库,医院数据库)创建单独的数据库 我们如何在 oracle sql 中实现?我想要一个命令行 solution.I.e。 sql加上。 sqlplus出现的问题是,一旦出现两张不同数据库的表重名,就会报错。同一个用户下每个项目都有不同的环境怎么办?
当您习惯了 MySQL 世界时,开始使用 Oracle RDBMS 可能会有些混乱。 MySQL 中的用户不拥有数据库对象:tables/views/etc,所有数据库对象都属于数据库。在 Oracle 中,所有对象都属于方案(用户的同义词,表明该用户拥有 DB 对象)。
我想向您展示在 MySQL 和 Oracle 中完成相同任务的不同方法:
设置当前数据库 (MySQL)/设置当前模式 (Oracle)
MySQL:
use db_name;
甲骨文:
alter session set current_schema = schema_name;
创建完全限定 table:
MySQL:
create table db_name.table_name ...
甲骨文:
create table schema_name.table_name ...
Select 来自另一个 DB/schema table
MySQL:
select * from database_name.table_name where ...
甲骨文:
select * from user_owning_table.table_name where ...
所以您基本上想为您的新项目创建另一个 Oracle 模式(我们称之为 "hospital"):
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(...);