如何在oracle中创建具有相同名称的表?

时间:2017-11-29 08:58:53

标签: oracle

我知道这很不寻常,但我可以在Oracle中使用两个同名的表吗?

我考虑过表空间,比如创建两个不同的表空间,然后在那些表空间中创建具有相同名称的表。但它不起作用。

有什么办法吗?

实际上,我正在使用Oracle作为数据库创建REST API。

我有主数据。进行API调用时,会对主表中的数据执行操作,从而生成一组表。 不同的用户可以使用Sum,average,union等不同的操作与主表中的不同记录。

现在,如果多个用户正在调用相同的API 如果我正在创建具有相同名称的表,则会出现表名冲突。

我知道我可以使用USER_ID,也可以是表名中的时间戳,以便唯一地标识表名。

但我正在寻找一些备用解决方案来获得一个干净的表名,而不会用USER_ID或时间戳来污染它。

3 个答案:

答案 0 :(得分:0)

表名对每个用户都是唯一的。您可以创建两个用户,并让每个用户拥有相同的表。

答案 1 :(得分:0)

为什么要这样做?

只能通过在不同的模式中创建两个具有相同名称的表来执行此操作。

就像你有user1和user2一样,你可以这样做:

create table user1.tablename(col Type ...)

create table user2.tablename(col Type ...)

但您也应该有权在这两个模式上创建表。

答案 2 :(得分:-1)

如前所述,每个用户/架构的表名都是唯一的。如果不是,你将如何使用该表?但是,你可以相当接近。通常,Oracle不区分大小写,因此USERS,用户和用户都引用同一个表。用双引号改变,因此“USERS”,“users”和“Users”是三个表!如果你有一个非常奇怪的要求,也许你可以利用它?

顺便说一下,不建议这样做。我已经看到它完成了(错误地)并且男孩会导致错误!