mysql - 在oracle中创建属于同名不同问题的表

标签 mysql sql oracle oracle11g sqlplus

我接触过一点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/

相关文章:

php - 我的 PHP 代码不允许我插入到我的 mysql 表中

php - Xampp Phpmyadmin 停止工作

php - 选择值等于变量 MySQL 的数据

php - 获取附近位置的最佳方式?

sql - 对非嵌套数组进行字符串操作后过滤行

sql - 如何将列变成行

mysql - 从多个表中查找数据

mysql - SQL - 理解 'JOIN' 语法、顺序

sql - 有值且没有 PostgreSQL 的条件

oracle - Oracle 临时表如何在这样的存储过程中准确工作?