我知道这很不寻常,但我可以在Oracle中使用两个同名的表吗?
我考虑过表空间,比如创建两个不同的表空间,然后在那些表空间中创建具有相同名称的表。但它不起作用。
有什么办法吗?
实际上,我正在使用Oracle作为数据库创建REST API。
我有主数据。进行API调用时,会对主表中的数据执行操作,从而生成一组表。 不同的用户可以使用Sum,average,union等不同的操作与主表中的不同记录。
现在,如果多个用户正在调用相同的API 如果我正在创建具有相同名称的表,则会出现表名冲突。
我知道我可以使用USER_ID,也可以是表名中的时间戳,以便唯一地标识表名。
但我正在寻找一些备用解决方案来获得一个干净的表名,而不会用USER_ID或时间戳来污染它。
答案 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”是三个表!如果你有一个非常奇怪的要求,也许你可以利用它?
顺便说一下,不建议这样做。我已经看到它完成了(错误地)并且男孩会导致错误!